Coverage Report

Created: 2026-03-16 04:49

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
#include "common/compile_check_begin.h"
46
47
/** Comparison functions: ==, !=, <, >, <=, >=.
48
  * The comparison functions always return 0 or 1 (UInt8).
49
  *
50
  * You can compare the following types:
51
  * - numbers and decimals;
52
  * - strings and fixed strings;
53
  * - dates;
54
  * - datetimes;
55
  *   within each group, but not from different groups;
56
  * - tuples (lexicographic comparison).
57
  *
58
  * Exception: You can compare the date and datetime with a constant string. Example: EventDate = '2015-01-01'.
59
  */
60
61
template <typename A, typename B, typename Op>
62
struct NumComparisonImpl {
63
    /// 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.
64
    static void NO_INLINE vector_vector(const PaddedPODArray<A>& a, const PaddedPODArray<B>& b,
65
12.9k
                                        PaddedPODArray<UInt8>& c) {
66
12.9k
        size_t size = a.size();
67
12.9k
        const A* __restrict a_pos = a.data();
68
12.9k
        const B* __restrict b_pos = b.data();
69
12.9k
        UInt8* __restrict c_pos = c.data();
70
12.9k
        const A* __restrict a_end = a_pos + size;
71
72
17.0M
        while (a_pos < a_end) {
73
17.0M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
17.0M
            ++a_pos;
75
17.0M
            ++b_pos;
76
17.0M
            ++c_pos;
77
17.0M
        }
78
12.9k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
65
76
                                        PaddedPODArray<UInt8>& c) {
66
76
        size_t size = a.size();
67
76
        const A* __restrict a_pos = a.data();
68
76
        const B* __restrict b_pos = b.data();
69
76
        UInt8* __restrict c_pos = c.data();
70
76
        const A* __restrict a_end = a_pos + size;
71
72
152
        while (a_pos < a_end) {
73
76
            *c_pos = Op::apply(*a_pos, *b_pos);
74
76
            ++a_pos;
75
76
            ++b_pos;
76
76
            ++c_pos;
77
76
        }
78
76
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
237
                                        PaddedPODArray<UInt8>& c) {
66
237
        size_t size = a.size();
67
237
        const A* __restrict a_pos = a.data();
68
237
        const B* __restrict b_pos = b.data();
69
237
        UInt8* __restrict c_pos = c.data();
70
237
        const A* __restrict a_end = a_pos + size;
71
72
480
        while (a_pos < a_end) {
73
243
            *c_pos = Op::apply(*a_pos, *b_pos);
74
243
            ++a_pos;
75
243
            ++b_pos;
76
243
            ++c_pos;
77
243
        }
78
237
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
301
                                        PaddedPODArray<UInt8>& c) {
66
301
        size_t size = a.size();
67
301
        const A* __restrict a_pos = a.data();
68
301
        const B* __restrict b_pos = b.data();
69
301
        UInt8* __restrict c_pos = c.data();
70
301
        const A* __restrict a_end = a_pos + size;
71
72
624
        while (a_pos < a_end) {
73
323
            *c_pos = Op::apply(*a_pos, *b_pos);
74
323
            ++a_pos;
75
323
            ++b_pos;
76
323
            ++c_pos;
77
323
        }
78
301
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_8EqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
_ZN5doris17NumComparisonImplIaaNS_8EqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
567
                                        PaddedPODArray<UInt8>& c) {
66
567
        size_t size = a.size();
67
567
        const A* __restrict a_pos = a.data();
68
567
        const B* __restrict b_pos = b.data();
69
567
        UInt8* __restrict c_pos = c.data();
70
567
        const A* __restrict a_end = a_pos + size;
71
72
5.36k
        while (a_pos < a_end) {
73
4.79k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.79k
            ++a_pos;
75
4.79k
            ++b_pos;
76
4.79k
            ++c_pos;
77
4.79k
        }
78
567
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
116
                                        PaddedPODArray<UInt8>& c) {
66
116
        size_t size = a.size();
67
116
        const A* __restrict a_pos = a.data();
68
116
        const B* __restrict b_pos = b.data();
69
116
        UInt8* __restrict c_pos = c.data();
70
116
        const A* __restrict a_end = a_pos + size;
71
72
552
        while (a_pos < a_end) {
73
436
            *c_pos = Op::apply(*a_pos, *b_pos);
74
436
            ++a_pos;
75
436
            ++b_pos;
76
436
            ++c_pos;
77
436
        }
78
116
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
295
                                        PaddedPODArray<UInt8>& c) {
66
295
        size_t size = a.size();
67
295
        const A* __restrict a_pos = a.data();
68
295
        const B* __restrict b_pos = b.data();
69
295
        UInt8* __restrict c_pos = c.data();
70
295
        const A* __restrict a_end = a_pos + size;
71
72
4.14k
        while (a_pos < a_end) {
73
3.84k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
3.84k
            ++a_pos;
75
3.84k
            ++b_pos;
76
3.84k
            ++c_pos;
77
3.84k
        }
78
295
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
473
                                        PaddedPODArray<UInt8>& c) {
66
473
        size_t size = a.size();
67
473
        const A* __restrict a_pos = a.data();
68
473
        const B* __restrict b_pos = b.data();
69
473
        UInt8* __restrict c_pos = c.data();
70
473
        const A* __restrict a_end = a_pos + size;
71
72
13.9k
        while (a_pos < a_end) {
73
13.5k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
13.5k
            ++a_pos;
75
13.5k
            ++b_pos;
76
13.5k
            ++c_pos;
77
13.5k
        }
78
473
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
104
                                        PaddedPODArray<UInt8>& c) {
66
104
        size_t size = a.size();
67
104
        const A* __restrict a_pos = a.data();
68
104
        const B* __restrict b_pos = b.data();
69
104
        UInt8* __restrict c_pos = c.data();
70
104
        const A* __restrict a_end = a_pos + size;
71
72
232
        while (a_pos < a_end) {
73
128
            *c_pos = Op::apply(*a_pos, *b_pos);
74
128
            ++a_pos;
75
128
            ++b_pos;
76
128
            ++c_pos;
77
128
        }
78
104
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
16
                                        PaddedPODArray<UInt8>& c) {
66
16
        size_t size = a.size();
67
16
        const A* __restrict a_pos = a.data();
68
16
        const B* __restrict b_pos = b.data();
69
16
        UInt8* __restrict c_pos = c.data();
70
16
        const A* __restrict a_end = a_pos + size;
71
72
32
        while (a_pos < a_end) {
73
16
            *c_pos = Op::apply(*a_pos, *b_pos);
74
16
            ++a_pos;
75
16
            ++b_pos;
76
16
            ++c_pos;
77
16
        }
78
16
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
24
                                        PaddedPODArray<UInt8>& c) {
66
24
        size_t size = a.size();
67
24
        const A* __restrict a_pos = a.data();
68
24
        const B* __restrict b_pos = b.data();
69
24
        UInt8* __restrict c_pos = c.data();
70
24
        const A* __restrict a_end = a_pos + size;
71
72
48
        while (a_pos < a_end) {
73
24
            *c_pos = Op::apply(*a_pos, *b_pos);
74
24
            ++a_pos;
75
24
            ++b_pos;
76
24
            ++c_pos;
77
24
        }
78
24
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
118
                                        PaddedPODArray<UInt8>& c) {
66
118
        size_t size = a.size();
67
118
        const A* __restrict a_pos = a.data();
68
118
        const B* __restrict b_pos = b.data();
69
118
        UInt8* __restrict c_pos = c.data();
70
118
        const A* __restrict a_end = a_pos + size;
71
72
255
        while (a_pos < a_end) {
73
137
            *c_pos = Op::apply(*a_pos, *b_pos);
74
137
            ++a_pos;
75
137
            ++b_pos;
76
137
            ++c_pos;
77
137
        }
78
118
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
107
                                        PaddedPODArray<UInt8>& c) {
66
107
        size_t size = a.size();
67
107
        const A* __restrict a_pos = a.data();
68
107
        const B* __restrict b_pos = b.data();
69
107
        UInt8* __restrict c_pos = c.data();
70
107
        const A* __restrict a_end = a_pos + size;
71
72
235
        while (a_pos < a_end) {
73
128
            *c_pos = Op::apply(*a_pos, *b_pos);
74
128
            ++a_pos;
75
128
            ++b_pos;
76
128
            ++c_pos;
77
128
        }
78
107
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
4
                                        PaddedPODArray<UInt8>& c) {
66
4
        size_t size = a.size();
67
4
        const A* __restrict a_pos = a.data();
68
4
        const B* __restrict b_pos = b.data();
69
4
        UInt8* __restrict c_pos = c.data();
70
4
        const A* __restrict a_end = a_pos + size;
71
72
8
        while (a_pos < a_end) {
73
4
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4
            ++a_pos;
75
4
            ++b_pos;
76
4
            ++c_pos;
77
4
        }
78
4
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_11NotEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
39
                                        PaddedPODArray<UInt8>& c) {
66
39
        size_t size = a.size();
67
39
        const A* __restrict a_pos = a.data();
68
39
        const B* __restrict b_pos = b.data();
69
39
        UInt8* __restrict c_pos = c.data();
70
39
        const A* __restrict a_end = a_pos + size;
71
72
108
        while (a_pos < a_end) {
73
69
            *c_pos = Op::apply(*a_pos, *b_pos);
74
69
            ++a_pos;
75
69
            ++b_pos;
76
69
            ++c_pos;
77
69
        }
78
39
    }
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
_ZN5doris17NumComparisonImplIaaNS_11NotEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
64
                                        PaddedPODArray<UInt8>& c) {
66
64
        size_t size = a.size();
67
64
        const A* __restrict a_pos = a.data();
68
64
        const B* __restrict b_pos = b.data();
69
64
        UInt8* __restrict c_pos = c.data();
70
64
        const A* __restrict a_end = a_pos + size;
71
72
288
        while (a_pos < a_end) {
73
224
            *c_pos = Op::apply(*a_pos, *b_pos);
74
224
            ++a_pos;
75
224
            ++b_pos;
76
224
            ++c_pos;
77
224
        }
78
64
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
644
                                        PaddedPODArray<UInt8>& c) {
66
644
        size_t size = a.size();
67
644
        const A* __restrict a_pos = a.data();
68
644
        const B* __restrict b_pos = b.data();
69
644
        UInt8* __restrict c_pos = c.data();
70
644
        const A* __restrict a_end = a_pos + size;
71
72
369k
        while (a_pos < a_end) {
73
369k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
369k
            ++a_pos;
75
369k
            ++b_pos;
76
369k
            ++c_pos;
77
369k
        }
78
644
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
385
                                        PaddedPODArray<UInt8>& c) {
66
385
        size_t size = a.size();
67
385
        const A* __restrict a_pos = a.data();
68
385
        const B* __restrict b_pos = b.data();
69
385
        UInt8* __restrict c_pos = c.data();
70
385
        const A* __restrict a_end = a_pos + size;
71
72
33.8k
        while (a_pos < a_end) {
73
33.4k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
33.4k
            ++a_pos;
75
33.4k
            ++b_pos;
76
33.4k
            ++c_pos;
77
33.4k
        }
78
385
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_9GreaterOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
1.25k
                                        PaddedPODArray<UInt8>& c) {
66
1.25k
        size_t size = a.size();
67
1.25k
        const A* __restrict a_pos = a.data();
68
1.25k
        const B* __restrict b_pos = b.data();
69
1.25k
        UInt8* __restrict c_pos = c.data();
70
1.25k
        const A* __restrict a_end = a_pos + size;
71
72
3.85M
        while (a_pos < a_end) {
73
3.85M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
3.85M
            ++a_pos;
75
3.85M
            ++b_pos;
76
3.85M
            ++c_pos;
77
3.85M
        }
78
1.25k
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
202
                                        PaddedPODArray<UInt8>& c) {
66
202
        size_t size = a.size();
67
202
        const A* __restrict a_pos = a.data();
68
202
        const B* __restrict b_pos = b.data();
69
202
        UInt8* __restrict c_pos = c.data();
70
202
        const A* __restrict a_end = a_pos + size;
71
72
2.22k
        while (a_pos < a_end) {
73
2.01k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
2.01k
            ++a_pos;
75
2.01k
            ++b_pos;
76
2.01k
            ++c_pos;
77
2.01k
        }
78
202
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
423
                                        PaddedPODArray<UInt8>& c) {
66
423
        size_t size = a.size();
67
423
        const A* __restrict a_pos = a.data();
68
423
        const B* __restrict b_pos = b.data();
69
423
        UInt8* __restrict c_pos = c.data();
70
423
        const A* __restrict a_end = a_pos + size;
71
72
4.75k
        while (a_pos < a_end) {
73
4.33k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.33k
            ++a_pos;
75
4.33k
            ++b_pos;
76
4.33k
            ++c_pos;
77
4.33k
        }
78
423
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
2.94k
                                        PaddedPODArray<UInt8>& c) {
66
2.94k
        size_t size = a.size();
67
2.94k
        const A* __restrict a_pos = a.data();
68
2.94k
        const B* __restrict b_pos = b.data();
69
2.94k
        UInt8* __restrict c_pos = c.data();
70
2.94k
        const A* __restrict a_end = a_pos + size;
71
72
9.75M
        while (a_pos < a_end) {
73
9.74M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9.74M
            ++a_pos;
75
9.74M
            ++b_pos;
76
9.74M
            ++c_pos;
77
9.74M
        }
78
2.94k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
161
                                        PaddedPODArray<UInt8>& c) {
66
161
        size_t size = a.size();
67
161
        const A* __restrict a_pos = a.data();
68
161
        const B* __restrict b_pos = b.data();
69
161
        UInt8* __restrict c_pos = c.data();
70
161
        const A* __restrict a_end = a_pos + size;
71
72
1.66k
        while (a_pos < a_end) {
73
1.49k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.49k
            ++a_pos;
75
1.49k
            ++b_pos;
76
1.49k
            ++c_pos;
77
1.49k
        }
78
161
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
41
                                        PaddedPODArray<UInt8>& c) {
66
41
        size_t size = a.size();
67
41
        const A* __restrict a_pos = a.data();
68
41
        const B* __restrict b_pos = b.data();
69
41
        UInt8* __restrict c_pos = c.data();
70
41
        const A* __restrict a_end = a_pos + size;
71
72
195
        while (a_pos < a_end) {
73
154
            *c_pos = Op::apply(*a_pos, *b_pos);
74
154
            ++a_pos;
75
154
            ++b_pos;
76
154
            ++c_pos;
77
154
        }
78
41
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIooNS_9GreaterOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIffNS_9GreaterOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
39
                                        PaddedPODArray<UInt8>& c) {
66
39
        size_t size = a.size();
67
39
        const A* __restrict a_pos = a.data();
68
39
        const B* __restrict b_pos = b.data();
69
39
        UInt8* __restrict c_pos = c.data();
70
39
        const A* __restrict a_end = a_pos + size;
71
72
134
        while (a_pos < a_end) {
73
95
            *c_pos = Op::apply(*a_pos, *b_pos);
74
95
            ++a_pos;
75
95
            ++b_pos;
76
95
            ++c_pos;
77
95
        }
78
39
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
7
                                        PaddedPODArray<UInt8>& c) {
66
7
        size_t size = a.size();
67
7
        const A* __restrict a_pos = a.data();
68
7
        const B* __restrict b_pos = b.data();
69
7
        UInt8* __restrict c_pos = c.data();
70
7
        const A* __restrict a_end = a_pos + size;
71
72
38
        while (a_pos < a_end) {
73
31
            *c_pos = Op::apply(*a_pos, *b_pos);
74
31
            ++a_pos;
75
31
            ++b_pos;
76
31
            ++c_pos;
77
31
        }
78
7
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
10
                                        PaddedPODArray<UInt8>& c) {
66
10
        size_t size = a.size();
67
10
        const A* __restrict a_pos = a.data();
68
10
        const B* __restrict b_pos = b.data();
69
10
        UInt8* __restrict c_pos = c.data();
70
10
        const A* __restrict a_end = a_pos + size;
71
72
101
        while (a_pos < a_end) {
73
91
            *c_pos = Op::apply(*a_pos, *b_pos);
74
91
            ++a_pos;
75
91
            ++b_pos;
76
91
            ++c_pos;
77
91
        }
78
10
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIaaNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
9
                                        PaddedPODArray<UInt8>& c) {
66
9
        size_t size = a.size();
67
9
        const A* __restrict a_pos = a.data();
68
9
        const B* __restrict b_pos = b.data();
69
9
        UInt8* __restrict c_pos = c.data();
70
9
        const A* __restrict a_end = a_pos + size;
71
72
34
        while (a_pos < a_end) {
73
25
            *c_pos = Op::apply(*a_pos, *b_pos);
74
25
            ++a_pos;
75
25
            ++b_pos;
76
25
            ++c_pos;
77
25
        }
78
9
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
19
                                        PaddedPODArray<UInt8>& c) {
66
19
        size_t size = a.size();
67
19
        const A* __restrict a_pos = a.data();
68
19
        const B* __restrict b_pos = b.data();
69
19
        UInt8* __restrict c_pos = c.data();
70
19
        const A* __restrict a_end = a_pos + size;
71
72
134
        while (a_pos < a_end) {
73
115
            *c_pos = Op::apply(*a_pos, *b_pos);
74
115
            ++a_pos;
75
115
            ++b_pos;
76
115
            ++c_pos;
77
115
        }
78
19
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIooNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
2
        while (a_pos < a_end) {
73
1
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1
            ++a_pos;
75
1
            ++b_pos;
76
1
            ++c_pos;
77
1
        }
78
1
    }
_ZN5doris17NumComparisonImplIffNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
84
                                        PaddedPODArray<UInt8>& c) {
66
84
        size_t size = a.size();
67
84
        const A* __restrict a_pos = a.data();
68
84
        const B* __restrict b_pos = b.data();
69
84
        UInt8* __restrict c_pos = c.data();
70
84
        const A* __restrict a_end = a_pos + size;
71
72
190
        while (a_pos < a_end) {
73
106
            *c_pos = Op::apply(*a_pos, *b_pos);
74
106
            ++a_pos;
75
106
            ++b_pos;
76
106
            ++c_pos;
77
106
        }
78
84
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIhhNS_6LessOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
Line
Count
Source
65
81
                                        PaddedPODArray<UInt8>& c) {
66
81
        size_t size = a.size();
67
81
        const A* __restrict a_pos = a.data();
68
81
        const B* __restrict b_pos = b.data();
69
81
        UInt8* __restrict c_pos = c.data();
70
81
        const A* __restrict a_end = a_pos + size;
71
72
162
        while (a_pos < a_end) {
73
81
            *c_pos = Op::apply(*a_pos, *b_pos);
74
81
            ++a_pos;
75
81
            ++b_pos;
76
81
            ++c_pos;
77
81
        }
78
81
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
1.62k
                                        PaddedPODArray<UInt8>& c) {
66
1.62k
        size_t size = a.size();
67
1.62k
        const A* __restrict a_pos = a.data();
68
1.62k
        const B* __restrict b_pos = b.data();
69
1.62k
        UInt8* __restrict c_pos = c.data();
70
1.62k
        const A* __restrict a_end = a_pos + size;
71
72
2.94M
        while (a_pos < a_end) {
73
2.94M
            *c_pos = Op::apply(*a_pos, *b_pos);
74
2.94M
            ++a_pos;
75
2.94M
            ++b_pos;
76
2.94M
            ++c_pos;
77
2.94M
        }
78
1.62k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
242
                                        PaddedPODArray<UInt8>& c) {
66
242
        size_t size = a.size();
67
242
        const A* __restrict a_pos = a.data();
68
242
        const B* __restrict b_pos = b.data();
69
242
        UInt8* __restrict c_pos = c.data();
70
242
        const A* __restrict a_end = a_pos + size;
71
72
484
        while (a_pos < a_end) {
73
242
            *c_pos = Op::apply(*a_pos, *b_pos);
74
242
            ++a_pos;
75
242
            ++b_pos;
76
242
            ++c_pos;
77
242
        }
78
242
    }
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
491
                                        PaddedPODArray<UInt8>& c) {
66
491
        size_t size = a.size();
67
491
        const A* __restrict a_pos = a.data();
68
491
        const B* __restrict b_pos = b.data();
69
491
        UInt8* __restrict c_pos = c.data();
70
491
        const A* __restrict a_end = a_pos + size;
71
72
4.73k
        while (a_pos < a_end) {
73
4.24k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4.24k
            ++a_pos;
75
4.24k
            ++b_pos;
76
4.24k
            ++c_pos;
77
4.24k
        }
78
491
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
106
                                        PaddedPODArray<UInt8>& c) {
66
106
        size_t size = a.size();
67
106
        const A* __restrict a_pos = a.data();
68
106
        const B* __restrict b_pos = b.data();
69
106
        UInt8* __restrict c_pos = c.data();
70
106
        const A* __restrict a_end = a_pos + size;
71
72
214
        while (a_pos < a_end) {
73
108
            *c_pos = Op::apply(*a_pos, *b_pos);
74
108
            ++a_pos;
75
108
            ++b_pos;
76
108
            ++c_pos;
77
108
        }
78
106
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
161
                                        PaddedPODArray<UInt8>& c) {
66
161
        size_t size = a.size();
67
161
        const A* __restrict a_pos = a.data();
68
161
        const B* __restrict b_pos = b.data();
69
161
        UInt8* __restrict c_pos = c.data();
70
161
        const A* __restrict a_end = a_pos + size;
71
72
2.88k
        while (a_pos < a_end) {
73
2.72k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
2.72k
            ++a_pos;
75
2.72k
            ++b_pos;
76
2.72k
            ++c_pos;
77
2.72k
        }
78
161
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
270
                                        PaddedPODArray<UInt8>& c) {
66
270
        size_t size = a.size();
67
270
        const A* __restrict a_pos = a.data();
68
270
        const B* __restrict b_pos = b.data();
69
270
        UInt8* __restrict c_pos = c.data();
70
270
        const A* __restrict a_end = a_pos + size;
71
72
7.71k
        while (a_pos < a_end) {
73
7.44k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
7.44k
            ++a_pos;
75
7.44k
            ++b_pos;
76
7.44k
            ++c_pos;
77
7.44k
        }
78
270
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
184
                                        PaddedPODArray<UInt8>& c) {
66
184
        size_t size = a.size();
67
184
        const A* __restrict a_pos = a.data();
68
184
        const B* __restrict b_pos = b.data();
69
184
        UInt8* __restrict c_pos = c.data();
70
184
        const A* __restrict a_end = a_pos + size;
71
72
512
        while (a_pos < a_end) {
73
328
            *c_pos = Op::apply(*a_pos, *b_pos);
74
328
            ++a_pos;
75
328
            ++b_pos;
76
328
            ++c_pos;
77
328
        }
78
184
    }
_ZN5doris17NumComparisonImplIjjNS_6LessOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
16
                                        PaddedPODArray<UInt8>& c) {
66
16
        size_t size = a.size();
67
16
        const A* __restrict a_pos = a.data();
68
16
        const B* __restrict b_pos = b.data();
69
16
        UInt8* __restrict c_pos = c.data();
70
16
        const A* __restrict a_end = a_pos + size;
71
72
32
        while (a_pos < a_end) {
73
16
            *c_pos = Op::apply(*a_pos, *b_pos);
74
16
            ++a_pos;
75
16
            ++b_pos;
76
16
            ++c_pos;
77
16
        }
78
16
    }
_ZN5doris17NumComparisonImplIooNS_6LessOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
16
                                        PaddedPODArray<UInt8>& c) {
66
16
        size_t size = a.size();
67
16
        const A* __restrict a_pos = a.data();
68
16
        const B* __restrict b_pos = b.data();
69
16
        UInt8* __restrict c_pos = c.data();
70
16
        const A* __restrict a_end = a_pos + size;
71
72
32
        while (a_pos < a_end) {
73
16
            *c_pos = Op::apply(*a_pos, *b_pos);
74
16
            ++a_pos;
75
16
            ++b_pos;
76
16
            ++c_pos;
77
16
        }
78
16
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
134
                                        PaddedPODArray<UInt8>& c) {
66
134
        size_t size = a.size();
67
134
        const A* __restrict a_pos = a.data();
68
134
        const B* __restrict b_pos = b.data();
69
134
        UInt8* __restrict c_pos = c.data();
70
134
        const A* __restrict a_end = a_pos + size;
71
72
287
        while (a_pos < a_end) {
73
153
            *c_pos = Op::apply(*a_pos, *b_pos);
74
153
            ++a_pos;
75
153
            ++b_pos;
76
153
            ++c_pos;
77
153
        }
78
134
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
144
                                        PaddedPODArray<UInt8>& c) {
66
144
        size_t size = a.size();
67
144
        const A* __restrict a_pos = a.data();
68
144
        const B* __restrict b_pos = b.data();
69
144
        UInt8* __restrict c_pos = c.data();
70
144
        const A* __restrict a_end = a_pos + size;
71
72
325
        while (a_pos < a_end) {
73
181
            *c_pos = Op::apply(*a_pos, *b_pos);
74
181
            ++a_pos;
75
181
            ++b_pos;
76
181
            ++c_pos;
77
181
        }
78
144
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE13vector_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RS9_
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
65
424
                                        PaddedPODArray<UInt8>& c) {
66
424
        size_t size = a.size();
67
424
        const A* __restrict a_pos = a.data();
68
424
        const B* __restrict b_pos = b.data();
69
424
        UInt8* __restrict c_pos = c.data();
70
424
        const A* __restrict a_end = a_pos + size;
71
72
6.72k
        while (a_pos < a_end) {
73
6.29k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
6.29k
            ++a_pos;
75
6.29k
            ++b_pos;
76
6.29k
            ++c_pos;
77
6.29k
        }
78
424
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE13vector_vectorERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESE_RNS8_IhLm4096ESB_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE42EEEE13vector_vectorERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESC_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
65
3
                                        PaddedPODArray<UInt8>& c) {
66
3
        size_t size = a.size();
67
3
        const A* __restrict a_pos = a.data();
68
3
        const B* __restrict b_pos = b.data();
69
3
        UInt8* __restrict c_pos = c.data();
70
3
        const A* __restrict a_end = a_pos + size;
71
72
12
        while (a_pos < a_end) {
73
9
            *c_pos = Op::apply(*a_pos, *b_pos);
74
9
            ++a_pos;
75
9
            ++b_pos;
76
9
            ++c_pos;
77
9
        }
78
3
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE13vector_vectorERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
1
                                        PaddedPODArray<UInt8>& c) {
66
1
        size_t size = a.size();
67
1
        const A* __restrict a_pos = a.data();
68
1
        const B* __restrict b_pos = b.data();
69
1
        UInt8* __restrict c_pos = c.data();
70
1
        const A* __restrict a_end = a_pos + size;
71
72
5
        while (a_pos < a_end) {
73
4
            *c_pos = Op::apply(*a_pos, *b_pos);
74
4
            ++a_pos;
75
4
            ++b_pos;
76
4
            ++c_pos;
77
4
        }
78
1
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE13vector_vectorERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
47
                                        PaddedPODArray<UInt8>& c) {
66
47
        size_t size = a.size();
67
47
        const A* __restrict a_pos = a.data();
68
47
        const B* __restrict b_pos = b.data();
69
47
        UInt8* __restrict c_pos = c.data();
70
47
        const A* __restrict a_end = a_pos + size;
71
72
1.04k
        while (a_pos < a_end) {
73
1.00k
            *c_pos = Op::apply(*a_pos, *b_pos);
74
1.00k
            ++a_pos;
75
1.00k
            ++b_pos;
76
1.00k
            ++c_pos;
77
1.00k
        }
78
47
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE13vector_vectorERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
77
                                        PaddedPODArray<UInt8>& c) {
66
77
        size_t size = a.size();
67
77
        const A* __restrict a_pos = a.data();
68
77
        const B* __restrict b_pos = b.data();
69
77
        UInt8* __restrict c_pos = c.data();
70
77
        const A* __restrict a_end = a_pos + size;
71
72
333
        while (a_pos < a_end) {
73
256
            *c_pos = Op::apply(*a_pos, *b_pos);
74
256
            ++a_pos;
75
256
            ++b_pos;
76
256
            ++c_pos;
77
256
        }
78
77
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE13vector_vectorERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE13vector_vectorERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_14LessOrEqualsOpILNS_13PrimitiveTypeE37EEEE13vector_vectorERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE13vector_vectorERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
65
20
                                        PaddedPODArray<UInt8>& c) {
66
20
        size_t size = a.size();
67
20
        const A* __restrict a_pos = a.data();
68
20
        const B* __restrict b_pos = b.data();
69
20
        UInt8* __restrict c_pos = c.data();
70
20
        const A* __restrict a_end = a_pos + size;
71
72
59
        while (a_pos < a_end) {
73
39
            *c_pos = Op::apply(*a_pos, *b_pos);
74
39
            ++a_pos;
75
39
            ++b_pos;
76
39
            ++c_pos;
77
39
        }
78
20
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE13vector_vectorERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEESB_RNS5_IhLm4096ES8_Lm16ELm15EEE
79
80
    static void NO_INLINE vector_constant(const PaddedPODArray<A>& a, B b,
81
99.0k
                                          PaddedPODArray<UInt8>& c) {
82
99.0k
        size_t size = a.size();
83
99.0k
        const A* __restrict a_pos = a.data();
84
99.0k
        UInt8* __restrict c_pos = c.data();
85
99.0k
        const A* __restrict a_end = a_pos + size;
86
87
263M
        while (a_pos < a_end) {
88
263M
            *c_pos = Op::apply(*a_pos, b);
89
263M
            ++a_pos;
90
263M
            ++c_pos;
91
263M
        }
92
99.0k
    }
_ZN5doris17NumComparisonImplIhhNS_8EqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
786
                                          PaddedPODArray<UInt8>& c) {
82
786
        size_t size = a.size();
83
786
        const A* __restrict a_pos = a.data();
84
786
        UInt8* __restrict c_pos = c.data();
85
786
        const A* __restrict a_end = a_pos + size;
86
87
3.20k
        while (a_pos < a_end) {
88
2.41k
            *c_pos = Op::apply(*a_pos, b);
89
2.41k
            ++a_pos;
90
2.41k
            ++c_pos;
91
2.41k
        }
92
786
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
985
                                          PaddedPODArray<UInt8>& c) {
82
985
        size_t size = a.size();
83
985
        const A* __restrict a_pos = a.data();
84
985
        UInt8* __restrict c_pos = c.data();
85
985
        const A* __restrict a_end = a_pos + size;
86
87
205k
        while (a_pos < a_end) {
88
204k
            *c_pos = Op::apply(*a_pos, b);
89
204k
            ++a_pos;
90
204k
            ++c_pos;
91
204k
        }
92
985
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_8EqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
408
                                          PaddedPODArray<UInt8>& c) {
82
408
        size_t size = a.size();
83
408
        const A* __restrict a_pos = a.data();
84
408
        UInt8* __restrict c_pos = c.data();
85
408
        const A* __restrict a_end = a_pos + size;
86
87
101k
        while (a_pos < a_end) {
88
101k
            *c_pos = Op::apply(*a_pos, b);
89
101k
            ++a_pos;
90
101k
            ++c_pos;
91
101k
        }
92
408
    }
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
81
3.01k
                                          PaddedPODArray<UInt8>& c) {
82
3.01k
        size_t size = a.size();
83
3.01k
        const A* __restrict a_pos = a.data();
84
3.01k
        UInt8* __restrict c_pos = c.data();
85
3.01k
        const A* __restrict a_end = a_pos + size;
86
87
9.41M
        while (a_pos < a_end) {
88
9.41M
            *c_pos = Op::apply(*a_pos, b);
89
9.41M
            ++a_pos;
90
9.41M
            ++c_pos;
91
9.41M
        }
92
3.01k
    }
_ZN5doris17NumComparisonImplIssNS_8EqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
589
                                          PaddedPODArray<UInt8>& c) {
82
589
        size_t size = a.size();
83
589
        const A* __restrict a_pos = a.data();
84
589
        UInt8* __restrict c_pos = c.data();
85
589
        const A* __restrict a_end = a_pos + size;
86
87
127k
        while (a_pos < a_end) {
88
126k
            *c_pos = Op::apply(*a_pos, b);
89
126k
            ++a_pos;
90
126k
            ++c_pos;
91
126k
        }
92
589
    }
_ZN5doris17NumComparisonImplIiiNS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
6.62k
                                          PaddedPODArray<UInt8>& c) {
82
6.62k
        size_t size = a.size();
83
6.62k
        const A* __restrict a_pos = a.data();
84
6.62k
        UInt8* __restrict c_pos = c.data();
85
6.62k
        const A* __restrict a_end = a_pos + size;
86
87
3.00M
        while (a_pos < a_end) {
88
2.99M
            *c_pos = Op::apply(*a_pos, b);
89
2.99M
            ++a_pos;
90
2.99M
            ++c_pos;
91
2.99M
        }
92
6.62k
    }
_ZN5doris17NumComparisonImplIllNS_8EqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
9.30k
                                          PaddedPODArray<UInt8>& c) {
82
9.30k
        size_t size = a.size();
83
9.30k
        const A* __restrict a_pos = a.data();
84
9.30k
        UInt8* __restrict c_pos = c.data();
85
9.30k
        const A* __restrict a_end = a_pos + size;
86
87
4.18M
        while (a_pos < a_end) {
88
4.18M
            *c_pos = Op::apply(*a_pos, b);
89
4.18M
            ++a_pos;
90
4.18M
            ++c_pos;
91
4.18M
        }
92
9.30k
    }
_ZN5doris17NumComparisonImplInnNS_8EqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
40
                                          PaddedPODArray<UInt8>& c) {
82
40
        size_t size = a.size();
83
40
        const A* __restrict a_pos = a.data();
84
40
        UInt8* __restrict c_pos = c.data();
85
40
        const A* __restrict a_end = a_pos + size;
86
87
101k
        while (a_pos < a_end) {
88
101k
            *c_pos = Op::apply(*a_pos, b);
89
101k
            ++a_pos;
90
101k
            ++c_pos;
91
101k
        }
92
40
    }
_ZN5doris17NumComparisonImplIjjNS_8EqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
15
                                          PaddedPODArray<UInt8>& c) {
82
15
        size_t size = a.size();
83
15
        const A* __restrict a_pos = a.data();
84
15
        UInt8* __restrict c_pos = c.data();
85
15
        const A* __restrict a_end = a_pos + size;
86
87
128
        while (a_pos < a_end) {
88
113
            *c_pos = Op::apply(*a_pos, b);
89
113
            ++a_pos;
90
113
            ++c_pos;
91
113
        }
92
15
    }
_ZN5doris17NumComparisonImplIooNS_8EqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
6
                                          PaddedPODArray<UInt8>& c) {
82
6
        size_t size = a.size();
83
6
        const A* __restrict a_pos = a.data();
84
6
        UInt8* __restrict c_pos = c.data();
85
6
        const A* __restrict a_end = a_pos + size;
86
87
12
        while (a_pos < a_end) {
88
6
            *c_pos = Op::apply(*a_pos, b);
89
6
            ++a_pos;
90
6
            ++c_pos;
91
6
        }
92
6
    }
_ZN5doris17NumComparisonImplIffNS_8EqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
4
                                          PaddedPODArray<UInt8>& c) {
82
4
        size_t size = a.size();
83
4
        const A* __restrict a_pos = a.data();
84
4
        UInt8* __restrict c_pos = c.data();
85
4
        const A* __restrict a_end = a_pos + size;
86
87
44
        while (a_pos < a_end) {
88
40
            *c_pos = Op::apply(*a_pos, b);
89
40
            ++a_pos;
90
40
            ++c_pos;
91
40
        }
92
4
    }
_ZN5doris17NumComparisonImplIddNS_8EqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
187
                                          PaddedPODArray<UInt8>& c) {
82
187
        size_t size = a.size();
83
187
        const A* __restrict a_pos = a.data();
84
187
        UInt8* __restrict c_pos = c.data();
85
187
        const A* __restrict a_end = a_pos + size;
86
87
701k
        while (a_pos < a_end) {
88
701k
            *c_pos = Op::apply(*a_pos, b);
89
701k
            ++a_pos;
90
701k
            ++c_pos;
91
701k
        }
92
187
    }
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
81
10
                                          PaddedPODArray<UInt8>& c) {
82
10
        size_t size = a.size();
83
10
        const A* __restrict a_pos = a.data();
84
10
        UInt8* __restrict c_pos = c.data();
85
10
        const A* __restrict a_end = a_pos + size;
86
87
21
        while (a_pos < a_end) {
88
11
            *c_pos = Op::apply(*a_pos, b);
89
11
            ++a_pos;
90
11
            ++c_pos;
91
11
        }
92
10
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_11NotEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
2
                                          PaddedPODArray<UInt8>& c) {
82
2
        size_t size = a.size();
83
2
        const A* __restrict a_pos = a.data();
84
2
        UInt8* __restrict c_pos = c.data();
85
2
        const A* __restrict a_end = a_pos + size;
86
87
4
        while (a_pos < a_end) {
88
2
            *c_pos = Op::apply(*a_pos, b);
89
2
            ++a_pos;
90
2
            ++c_pos;
91
2
        }
92
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
81
32
                                          PaddedPODArray<UInt8>& c) {
82
32
        size_t size = a.size();
83
32
        const A* __restrict a_pos = a.data();
84
32
        UInt8* __restrict c_pos = c.data();
85
32
        const A* __restrict a_end = a_pos + size;
86
87
858
        while (a_pos < a_end) {
88
826
            *c_pos = Op::apply(*a_pos, b);
89
826
            ++a_pos;
90
826
            ++c_pos;
91
826
        }
92
32
    }
_ZN5doris17NumComparisonImplIssNS_11NotEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
4
                                          PaddedPODArray<UInt8>& c) {
82
4
        size_t size = a.size();
83
4
        const A* __restrict a_pos = a.data();
84
4
        UInt8* __restrict c_pos = c.data();
85
4
        const A* __restrict a_end = a_pos + size;
86
87
780
        while (a_pos < a_end) {
88
776
            *c_pos = Op::apply(*a_pos, b);
89
776
            ++a_pos;
90
776
            ++c_pos;
91
776
        }
92
4
    }
_ZN5doris17NumComparisonImplIiiNS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
545
                                          PaddedPODArray<UInt8>& c) {
82
545
        size_t size = a.size();
83
545
        const A* __restrict a_pos = a.data();
84
545
        UInt8* __restrict c_pos = c.data();
85
545
        const A* __restrict a_end = a_pos + size;
86
87
488k
        while (a_pos < a_end) {
88
487k
            *c_pos = Op::apply(*a_pos, b);
89
487k
            ++a_pos;
90
487k
            ++c_pos;
91
487k
        }
92
545
    }
_ZN5doris17NumComparisonImplIllNS_11NotEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
541
                                          PaddedPODArray<UInt8>& c) {
82
541
        size_t size = a.size();
83
541
        const A* __restrict a_pos = a.data();
84
541
        UInt8* __restrict c_pos = c.data();
85
541
        const A* __restrict a_end = a_pos + size;
86
87
201k
        while (a_pos < a_end) {
88
201k
            *c_pos = Op::apply(*a_pos, b);
89
201k
            ++a_pos;
90
201k
            ++c_pos;
91
201k
        }
92
541
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplInnNS_11NotEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIjjNS_11NotEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIooNS_11NotEqualsOpILNS_13PrimitiveTypeE37EEEE15vector_constantERKNS_8PODArrayIoLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEoRNS5_IhLm4096ES8_Lm16ELm15EEE
_ZN5doris17NumComparisonImplIffNS_11NotEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
32
                                          PaddedPODArray<UInt8>& c) {
82
32
        size_t size = a.size();
83
32
        const A* __restrict a_pos = a.data();
84
32
        UInt8* __restrict c_pos = c.data();
85
32
        const A* __restrict a_end = a_pos + size;
86
87
80
        while (a_pos < a_end) {
88
48
            *c_pos = Op::apply(*a_pos, b);
89
48
            ++a_pos;
90
48
            ++c_pos;
91
48
        }
92
32
    }
_ZN5doris17NumComparisonImplIddNS_11NotEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
52
                                          PaddedPODArray<UInt8>& c) {
82
52
        size_t size = a.size();
83
52
        const A* __restrict a_pos = a.data();
84
52
        UInt8* __restrict c_pos = c.data();
85
52
        const A* __restrict a_end = a_pos + size;
86
87
312
        while (a_pos < a_end) {
88
260
            *c_pos = Op::apply(*a_pos, b);
89
260
            ++a_pos;
90
260
            ++c_pos;
91
260
        }
92
52
    }
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
81
114
                                          PaddedPODArray<UInt8>& c) {
82
114
        size_t size = a.size();
83
114
        const A* __restrict a_pos = a.data();
84
114
        UInt8* __restrict c_pos = c.data();
85
114
        const A* __restrict a_end = a_pos + size;
86
87
1.50k
        while (a_pos < a_end) {
88
1.39k
            *c_pos = Op::apply(*a_pos, b);
89
1.39k
            ++a_pos;
90
1.39k
            ++c_pos;
91
1.39k
        }
92
114
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
411
                                          PaddedPODArray<UInt8>& c) {
82
411
        size_t size = a.size();
83
411
        const A* __restrict a_pos = a.data();
84
411
        UInt8* __restrict c_pos = c.data();
85
411
        const A* __restrict a_end = a_pos + size;
86
87
1.34M
        while (a_pos < a_end) {
88
1.34M
            *c_pos = Op::apply(*a_pos, b);
89
1.34M
            ++a_pos;
90
1.34M
            ++c_pos;
91
1.34M
        }
92
411
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_9GreaterOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
59
                                          PaddedPODArray<UInt8>& c) {
82
59
        size_t size = a.size();
83
59
        const A* __restrict a_pos = a.data();
84
59
        UInt8* __restrict c_pos = c.data();
85
59
        const A* __restrict a_end = a_pos + size;
86
87
139
        while (a_pos < a_end) {
88
80
            *c_pos = Op::apply(*a_pos, b);
89
80
            ++a_pos;
90
80
            ++c_pos;
91
80
        }
92
59
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_6LessOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
211
                                          PaddedPODArray<UInt8>& c) {
82
211
        size_t size = a.size();
83
211
        const A* __restrict a_pos = a.data();
84
211
        UInt8* __restrict c_pos = c.data();
85
211
        const A* __restrict a_end = a_pos + size;
86
87
29.9k
        while (a_pos < a_end) {
88
29.6k
            *c_pos = Op::apply(*a_pos, b);
89
29.6k
            ++a_pos;
90
29.6k
            ++c_pos;
91
29.6k
        }
92
211
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_9GreaterOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
_ZN5doris17NumComparisonImplINS_16TimestampTzValueES1_NS_6LessOpILNS_13PrimitiveTypeE42EEEE15vector_constantERKNS_8PODArrayIS1_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES1_RNS6_IhLm4096ES9_Lm16ELm15EEE
Line
Count
Source
81
1
                                          PaddedPODArray<UInt8>& c) {
82
1
        size_t size = a.size();
83
1
        const A* __restrict a_pos = a.data();
84
1
        UInt8* __restrict c_pos = c.data();
85
1
        const A* __restrict a_end = a_pos + size;
86
87
8
        while (a_pos < a_end) {
88
7
            *c_pos = Op::apply(*a_pos, b);
89
7
            ++a_pos;
90
7
            ++c_pos;
91
7
        }
92
1
    }
_ZN5doris17NumComparisonImplIaaNS_9GreaterOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
418
                                          PaddedPODArray<UInt8>& c) {
82
418
        size_t size = a.size();
83
418
        const A* __restrict a_pos = a.data();
84
418
        UInt8* __restrict c_pos = c.data();
85
418
        const A* __restrict a_end = a_pos + size;
86
87
4.24k
        while (a_pos < a_end) {
88
3.82k
            *c_pos = Op::apply(*a_pos, b);
89
3.82k
            ++a_pos;
90
3.82k
            ++c_pos;
91
3.82k
        }
92
418
    }
_ZN5doris17NumComparisonImplIaaNS_6LessOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
50
                                          PaddedPODArray<UInt8>& c) {
82
50
        size_t size = a.size();
83
50
        const A* __restrict a_pos = a.data();
84
50
        UInt8* __restrict c_pos = c.data();
85
50
        const A* __restrict a_end = a_pos + size;
86
87
1.82k
        while (a_pos < a_end) {
88
1.77k
            *c_pos = Op::apply(*a_pos, b);
89
1.77k
            ++a_pos;
90
1.77k
            ++c_pos;
91
1.77k
        }
92
50
    }
_ZN5doris17NumComparisonImplIssNS_9GreaterOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
455
                                          PaddedPODArray<UInt8>& c) {
82
455
        size_t size = a.size();
83
455
        const A* __restrict a_pos = a.data();
84
455
        UInt8* __restrict c_pos = c.data();
85
455
        const A* __restrict a_end = a_pos + size;
86
87
7.90k
        while (a_pos < a_end) {
88
7.44k
            *c_pos = Op::apply(*a_pos, b);
89
7.44k
            ++a_pos;
90
7.44k
            ++c_pos;
91
7.44k
        }
92
455
    }
_ZN5doris17NumComparisonImplIssNS_6LessOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
104
                                          PaddedPODArray<UInt8>& c) {
82
104
        size_t size = a.size();
83
104
        const A* __restrict a_pos = a.data();
84
104
        UInt8* __restrict c_pos = c.data();
85
104
        const A* __restrict a_end = a_pos + size;
86
87
8.56k
        while (a_pos < a_end) {
88
8.46k
            *c_pos = Op::apply(*a_pos, b);
89
8.46k
            ++a_pos;
90
8.46k
            ++c_pos;
91
8.46k
        }
92
104
    }
_ZN5doris17NumComparisonImplIiiNS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
9.08k
                                          PaddedPODArray<UInt8>& c) {
82
9.08k
        size_t size = a.size();
83
9.08k
        const A* __restrict a_pos = a.data();
84
9.08k
        UInt8* __restrict c_pos = c.data();
85
9.08k
        const A* __restrict a_end = a_pos + size;
86
87
1.48M
        while (a_pos < a_end) {
88
1.47M
            *c_pos = Op::apply(*a_pos, b);
89
1.47M
            ++a_pos;
90
1.47M
            ++c_pos;
91
1.47M
        }
92
9.08k
    }
_ZN5doris17NumComparisonImplIiiNS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.86k
                                          PaddedPODArray<UInt8>& c) {
82
1.86k
        size_t size = a.size();
83
1.86k
        const A* __restrict a_pos = a.data();
84
1.86k
        UInt8* __restrict c_pos = c.data();
85
1.86k
        const A* __restrict a_end = a_pos + size;
86
87
7.32M
        while (a_pos < a_end) {
88
7.32M
            *c_pos = Op::apply(*a_pos, b);
89
7.32M
            ++a_pos;
90
7.32M
            ++c_pos;
91
7.32M
        }
92
1.86k
    }
_ZN5doris17NumComparisonImplIllNS_9GreaterOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
8.07k
                                          PaddedPODArray<UInt8>& c) {
82
8.07k
        size_t size = a.size();
83
8.07k
        const A* __restrict a_pos = a.data();
84
8.07k
        UInt8* __restrict c_pos = c.data();
85
8.07k
        const A* __restrict a_end = a_pos + size;
86
87
184k
        while (a_pos < a_end) {
88
176k
            *c_pos = Op::apply(*a_pos, b);
89
176k
            ++a_pos;
90
176k
            ++c_pos;
91
176k
        }
92
8.07k
    }
_ZN5doris17NumComparisonImplIllNS_6LessOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.01k
                                          PaddedPODArray<UInt8>& c) {
82
1.01k
        size_t size = a.size();
83
1.01k
        const A* __restrict a_pos = a.data();
84
1.01k
        UInt8* __restrict c_pos = c.data();
85
1.01k
        const A* __restrict a_end = a_pos + size;
86
87
5.60k
        while (a_pos < a_end) {
88
4.59k
            *c_pos = Op::apply(*a_pos, b);
89
4.59k
            ++a_pos;
90
4.59k
            ++c_pos;
91
4.59k
        }
92
1.01k
    }
_ZN5doris17NumComparisonImplInnNS_9GreaterOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
207
                                          PaddedPODArray<UInt8>& c) {
82
207
        size_t size = a.size();
83
207
        const A* __restrict a_pos = a.data();
84
207
        UInt8* __restrict c_pos = c.data();
85
207
        const A* __restrict a_end = a_pos + size;
86
87
1.75k
        while (a_pos < a_end) {
88
1.54k
            *c_pos = Op::apply(*a_pos, b);
89
1.54k
            ++a_pos;
90
1.54k
            ++c_pos;
91
1.54k
        }
92
207
    }
_ZN5doris17NumComparisonImplInnNS_6LessOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
13
                                          PaddedPODArray<UInt8>& c) {
82
13
        size_t size = a.size();
83
13
        const A* __restrict a_pos = a.data();
84
13
        UInt8* __restrict c_pos = c.data();
85
13
        const A* __restrict a_end = a_pos + size;
86
87
85.9k
        while (a_pos < a_end) {
88
85.8k
            *c_pos = Op::apply(*a_pos, b);
89
85.8k
            ++a_pos;
90
85.8k
            ++c_pos;
91
85.8k
        }
92
13
    }
_ZN5doris17NumComparisonImplIjjNS_9GreaterOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1
                                          PaddedPODArray<UInt8>& c) {
82
1
        size_t size = a.size();
83
1
        const A* __restrict a_pos = a.data();
84
1
        UInt8* __restrict c_pos = c.data();
85
1
        const A* __restrict a_end = a_pos + size;
86
87
9
        while (a_pos < a_end) {
88
8
            *c_pos = Op::apply(*a_pos, b);
89
8
            ++a_pos;
90
8
            ++c_pos;
91
8
        }
92
1
    }
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
81
212
                                          PaddedPODArray<UInt8>& c) {
82
212
        size_t size = a.size();
83
212
        const A* __restrict a_pos = a.data();
84
212
        UInt8* __restrict c_pos = c.data();
85
212
        const A* __restrict a_end = a_pos + size;
86
87
3.40k
        while (a_pos < a_end) {
88
3.19k
            *c_pos = Op::apply(*a_pos, b);
89
3.19k
            ++a_pos;
90
3.19k
            ++c_pos;
91
3.19k
        }
92
212
    }
_ZN5doris17NumComparisonImplIffNS_6LessOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
21
                                          PaddedPODArray<UInt8>& c) {
82
21
        size_t size = a.size();
83
21
        const A* __restrict a_pos = a.data();
84
21
        UInt8* __restrict c_pos = c.data();
85
21
        const A* __restrict a_end = a_pos + size;
86
87
63
        while (a_pos < a_end) {
88
42
            *c_pos = Op::apply(*a_pos, b);
89
42
            ++a_pos;
90
42
            ++c_pos;
91
42
        }
92
21
    }
_ZN5doris17NumComparisonImplIddNS_9GreaterOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
1.70k
                                          PaddedPODArray<UInt8>& c) {
82
1.70k
        size_t size = a.size();
83
1.70k
        const A* __restrict a_pos = a.data();
84
1.70k
        UInt8* __restrict c_pos = c.data();
85
1.70k
        const A* __restrict a_end = a_pos + size;
86
87
529k
        while (a_pos < a_end) {
88
527k
            *c_pos = Op::apply(*a_pos, b);
89
527k
            ++a_pos;
90
527k
            ++c_pos;
91
527k
        }
92
1.70k
    }
_ZN5doris17NumComparisonImplIddNS_6LessOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
195
                                          PaddedPODArray<UInt8>& c) {
82
195
        size_t size = a.size();
83
195
        const A* __restrict a_pos = a.data();
84
195
        UInt8* __restrict c_pos = c.data();
85
195
        const A* __restrict a_end = a_pos + size;
86
87
312k
        while (a_pos < a_end) {
88
312k
            *c_pos = Op::apply(*a_pos, b);
89
312k
            ++a_pos;
90
312k
            ++c_pos;
91
312k
        }
92
195
    }
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
81
126
                                          PaddedPODArray<UInt8>& c) {
82
126
        size_t size = a.size();
83
126
        const A* __restrict a_pos = a.data();
84
126
        UInt8* __restrict c_pos = c.data();
85
126
        const A* __restrict a_end = a_pos + size;
86
87
107k
        while (a_pos < a_end) {
88
107k
            *c_pos = Op::apply(*a_pos, b);
89
107k
            ++a_pos;
90
107k
            ++c_pos;
91
107k
        }
92
126
    }
_ZN5doris17NumComparisonImplIhhNS_14LessOrEqualsOpILNS_13PrimitiveTypeE2EEEE15vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEhRS9_
Line
Count
Source
81
111
                                          PaddedPODArray<UInt8>& c) {
82
111
        size_t size = a.size();
83
111
        const A* __restrict a_pos = a.data();
84
111
        UInt8* __restrict c_pos = c.data();
85
111
        const A* __restrict a_end = a_pos + size;
86
87
23.0k
        while (a_pos < a_end) {
88
22.9k
            *c_pos = Op::apply(*a_pos, b);
89
22.9k
            ++a_pos;
90
22.9k
            ++c_pos;
91
22.9k
        }
92
111
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
1.45k
                                          PaddedPODArray<UInt8>& c) {
82
1.45k
        size_t size = a.size();
83
1.45k
        const A* __restrict a_pos = a.data();
84
1.45k
        UInt8* __restrict c_pos = c.data();
85
1.45k
        const A* __restrict a_end = a_pos + size;
86
87
7.40M
        while (a_pos < a_end) {
88
7.40M
            *c_pos = Op::apply(*a_pos, b);
89
7.40M
            ++a_pos;
90
7.40M
            ++c_pos;
91
7.40M
        }
92
1.45k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_15DateV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE25EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
5.49k
                                          PaddedPODArray<UInt8>& c) {
82
5.49k
        size_t size = a.size();
83
5.49k
        const A* __restrict a_pos = a.data();
84
5.49k
        UInt8* __restrict c_pos = c.data();
85
5.49k
        const A* __restrict a_end = a_pos + size;
86
87
42.6M
        while (a_pos < a_end) {
88
42.6M
            *c_pos = Op::apply(*a_pos, b);
89
42.6M
            ++a_pos;
90
42.6M
            ++c_pos;
91
42.6M
        }
92
5.49k
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
474
                                          PaddedPODArray<UInt8>& c) {
82
474
        size_t size = a.size();
83
474
        const A* __restrict a_pos = a.data();
84
474
        UInt8* __restrict c_pos = c.data();
85
474
        const A* __restrict a_end = a_pos + size;
86
87
1.39k
        while (a_pos < a_end) {
88
917
            *c_pos = Op::apply(*a_pos, b);
89
917
            ++a_pos;
90
917
            ++c_pos;
91
917
        }
92
474
    }
_ZN5doris17NumComparisonImplINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEES3_NS_14LessOrEqualsOpILNS_13PrimitiveTypeE26EEEE15vector_constantERKNS_8PODArrayIS3_Lm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEES3_RNS8_IhLm4096ESB_Lm16ELm15EEE
Line
Count
Source
81
267
                                          PaddedPODArray<UInt8>& c) {
82
267
        size_t size = a.size();
83
267
        const A* __restrict a_pos = a.data();
84
267
        UInt8* __restrict c_pos = c.data();
85
267
        const A* __restrict a_end = a_pos + size;
86
87
2.65k
        while (a_pos < a_end) {
88
2.39k
            *c_pos = Op::apply(*a_pos, b);
89
2.39k
            ++a_pos;
90
2.39k
            ++c_pos;
91
2.39k
        }
92
267
    }
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
81
96
                                          PaddedPODArray<UInt8>& c) {
82
96
        size_t size = a.size();
83
96
        const A* __restrict a_pos = a.data();
84
96
        UInt8* __restrict c_pos = c.data();
85
96
        const A* __restrict a_end = a_pos + size;
86
87
39.8k
        while (a_pos < a_end) {
88
39.7k
            *c_pos = Op::apply(*a_pos, b);
89
39.7k
            ++a_pos;
90
39.7k
            ++c_pos;
91
39.7k
        }
92
96
    }
_ZN5doris17NumComparisonImplIaaNS_14LessOrEqualsOpILNS_13PrimitiveTypeE3EEEE15vector_constantERKNS_8PODArrayIaLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEaRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
149
                                          PaddedPODArray<UInt8>& c) {
82
149
        size_t size = a.size();
83
149
        const A* __restrict a_pos = a.data();
84
149
        UInt8* __restrict c_pos = c.data();
85
149
        const A* __restrict a_end = a_pos + size;
86
87
11.9k
        while (a_pos < a_end) {
88
11.8k
            *c_pos = Op::apply(*a_pos, b);
89
11.8k
            ++a_pos;
90
11.8k
            ++c_pos;
91
11.8k
        }
92
149
    }
_ZN5doris17NumComparisonImplIssNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
131
                                          PaddedPODArray<UInt8>& c) {
82
131
        size_t size = a.size();
83
131
        const A* __restrict a_pos = a.data();
84
131
        UInt8* __restrict c_pos = c.data();
85
131
        const A* __restrict a_end = a_pos + size;
86
87
30.0k
        while (a_pos < a_end) {
88
29.9k
            *c_pos = Op::apply(*a_pos, b);
89
29.9k
            ++a_pos;
90
29.9k
            ++c_pos;
91
29.9k
        }
92
131
    }
_ZN5doris17NumComparisonImplIssNS_14LessOrEqualsOpILNS_13PrimitiveTypeE4EEEE15vector_constantERKNS_8PODArrayIsLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEsRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
214
                                          PaddedPODArray<UInt8>& c) {
82
214
        size_t size = a.size();
83
214
        const A* __restrict a_pos = a.data();
84
214
        UInt8* __restrict c_pos = c.data();
85
214
        const A* __restrict a_end = a_pos + size;
86
87
8.30k
        while (a_pos < a_end) {
88
8.09k
            *c_pos = Op::apply(*a_pos, b);
89
8.09k
            ++a_pos;
90
8.09k
            ++c_pos;
91
8.09k
        }
92
214
    }
_ZN5doris17NumComparisonImplIiiNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
20.9k
                                          PaddedPODArray<UInt8>& c) {
82
20.9k
        size_t size = a.size();
83
20.9k
        const A* __restrict a_pos = a.data();
84
20.9k
        UInt8* __restrict c_pos = c.data();
85
20.9k
        const A* __restrict a_end = a_pos + size;
86
87
91.3M
        while (a_pos < a_end) {
88
91.2M
            *c_pos = Op::apply(*a_pos, b);
89
91.2M
            ++a_pos;
90
91.2M
            ++c_pos;
91
91.2M
        }
92
20.9k
    }
_ZN5doris17NumComparisonImplIiiNS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_8PODArrayIiLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEiRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
20.9k
                                          PaddedPODArray<UInt8>& c) {
82
20.9k
        size_t size = a.size();
83
20.9k
        const A* __restrict a_pos = a.data();
84
20.9k
        UInt8* __restrict c_pos = c.data();
85
20.9k
        const A* __restrict a_end = a_pos + size;
86
87
91.2M
        while (a_pos < a_end) {
88
91.2M
            *c_pos = Op::apply(*a_pos, b);
89
91.2M
            ++a_pos;
90
91.2M
            ++c_pos;
91
91.2M
        }
92
20.9k
    }
_ZN5doris17NumComparisonImplIllNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
417
                                          PaddedPODArray<UInt8>& c) {
82
417
        size_t size = a.size();
83
417
        const A* __restrict a_pos = a.data();
84
417
        UInt8* __restrict c_pos = c.data();
85
417
        const A* __restrict a_end = a_pos + size;
86
87
26.7k
        while (a_pos < a_end) {
88
26.3k
            *c_pos = Op::apply(*a_pos, b);
89
26.3k
            ++a_pos;
90
26.3k
            ++c_pos;
91
26.3k
        }
92
417
    }
_ZN5doris17NumComparisonImplIllNS_14LessOrEqualsOpILNS_13PrimitiveTypeE6EEEE15vector_constantERKNS_8PODArrayIlLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEElRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
372
                                          PaddedPODArray<UInt8>& c) {
82
372
        size_t size = a.size();
83
372
        const A* __restrict a_pos = a.data();
84
372
        UInt8* __restrict c_pos = c.data();
85
372
        const A* __restrict a_end = a_pos + size;
86
87
7.46k
        while (a_pos < a_end) {
88
7.08k
            *c_pos = Op::apply(*a_pos, b);
89
7.08k
            ++a_pos;
90
7.08k
            ++c_pos;
91
7.08k
        }
92
372
    }
_ZN5doris17NumComparisonImplInnNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
27
                                          PaddedPODArray<UInt8>& c) {
82
27
        size_t size = a.size();
83
27
        const A* __restrict a_pos = a.data();
84
27
        UInt8* __restrict c_pos = c.data();
85
27
        const A* __restrict a_end = a_pos + size;
86
87
21.9k
        while (a_pos < a_end) {
88
21.9k
            *c_pos = Op::apply(*a_pos, b);
89
21.9k
            ++a_pos;
90
21.9k
            ++c_pos;
91
21.9k
        }
92
27
    }
_ZN5doris17NumComparisonImplInnNS_14LessOrEqualsOpILNS_13PrimitiveTypeE7EEEE15vector_constantERKNS_8PODArrayInLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEnRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
31
                                          PaddedPODArray<UInt8>& c) {
82
31
        size_t size = a.size();
83
31
        const A* __restrict a_pos = a.data();
84
31
        UInt8* __restrict c_pos = c.data();
85
31
        const A* __restrict a_end = a_pos + size;
86
87
16.4k
        while (a_pos < a_end) {
88
16.4k
            *c_pos = Op::apply(*a_pos, b);
89
16.4k
            ++a_pos;
90
16.4k
            ++c_pos;
91
16.4k
        }
92
31
    }
_ZN5doris17NumComparisonImplIjjNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
10
                                          PaddedPODArray<UInt8>& c) {
82
10
        size_t size = a.size();
83
10
        const A* __restrict a_pos = a.data();
84
10
        UInt8* __restrict c_pos = c.data();
85
10
        const A* __restrict a_end = a_pos + size;
86
87
110
        while (a_pos < a_end) {
88
100
            *c_pos = Op::apply(*a_pos, b);
89
100
            ++a_pos;
90
100
            ++c_pos;
91
100
        }
92
10
    }
_ZN5doris17NumComparisonImplIjjNS_14LessOrEqualsOpILNS_13PrimitiveTypeE36EEEE15vector_constantERKNS_8PODArrayIjLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
10
                                          PaddedPODArray<UInt8>& c) {
82
10
        size_t size = a.size();
83
10
        const A* __restrict a_pos = a.data();
84
10
        UInt8* __restrict c_pos = c.data();
85
10
        const A* __restrict a_end = a_pos + size;
86
87
110
        while (a_pos < a_end) {
88
100
            *c_pos = Op::apply(*a_pos, b);
89
100
            ++a_pos;
90
100
            ++c_pos;
91
100
        }
92
10
    }
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
81
82
                                          PaddedPODArray<UInt8>& c) {
82
82
        size_t size = a.size();
83
82
        const A* __restrict a_pos = a.data();
84
82
        UInt8* __restrict c_pos = c.data();
85
82
        const A* __restrict a_end = a_pos + size;
86
87
167
        while (a_pos < a_end) {
88
85
            *c_pos = Op::apply(*a_pos, b);
89
85
            ++a_pos;
90
85
            ++c_pos;
91
85
        }
92
82
    }
_ZN5doris17NumComparisonImplIffNS_14LessOrEqualsOpILNS_13PrimitiveTypeE8EEEE15vector_constantERKNS_8PODArrayIfLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEfRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
76
                                          PaddedPODArray<UInt8>& c) {
82
76
        size_t size = a.size();
83
76
        const A* __restrict a_pos = a.data();
84
76
        UInt8* __restrict c_pos = c.data();
85
76
        const A* __restrict a_end = a_pos + size;
86
87
152
        while (a_pos < a_end) {
88
76
            *c_pos = Op::apply(*a_pos, b);
89
76
            ++a_pos;
90
76
            ++c_pos;
91
76
        }
92
76
    }
_ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
129
                                          PaddedPODArray<UInt8>& c) {
82
129
        size_t size = a.size();
83
129
        const A* __restrict a_pos = a.data();
84
129
        UInt8* __restrict c_pos = c.data();
85
129
        const A* __restrict a_end = a_pos + size;
86
87
356k
        while (a_pos < a_end) {
88
356k
            *c_pos = Op::apply(*a_pos, b);
89
356k
            ++a_pos;
90
356k
            ++c_pos;
91
356k
        }
92
129
    }
_ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE9EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Line
Count
Source
81
142
                                          PaddedPODArray<UInt8>& c) {
82
142
        size_t size = a.size();
83
142
        const A* __restrict a_pos = a.data();
84
142
        UInt8* __restrict c_pos = c.data();
85
142
        const A* __restrict a_end = a_pos + size;
86
87
276k
        while (a_pos < a_end) {
88
276k
            *c_pos = Op::apply(*a_pos, b);
89
276k
            ++a_pos;
90
276k
            ++c_pos;
91
276k
        }
92
142
    }
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
Unexecuted instantiation: _ZN5doris17NumComparisonImplIddNS_14LessOrEqualsOpILNS_13PrimitiveTypeE27EEEE15vector_constantERKNS_8PODArrayIdLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEdRNS5_IhLm4096ES8_Lm16ELm15EEE
93
94
8
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
8
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
8
    }
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
94
8
    static void constant_vector(A a, const PaddedPODArray<B>& b, PaddedPODArray<UInt8>& c) {
95
8
        NumComparisonImpl<B, A, typename Op::SymmetricOp>::vector_constant(b, a, c);
96
8
    }
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
97
};
98
99
/// Generic version, implemented for columns of same type.
100
template <typename Op>
101
struct GenericComparisonImpl {
102
9
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
20
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
11
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
11
        }
106
9
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
102
4
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
10
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
6
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
6
        }
106
4
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
102
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
1
        }
106
1
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
102
1
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
2
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
1
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
1
        }
106
1
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
102
3
    static void vector_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
103
6
        for (size_t i = 0, size = a.size(); i < size; ++i) {
104
3
            c[i] = Op::apply(a.compare_at(i, i, b, 1), 0);
105
3
        }
106
3
    }
Unexecuted instantiation: _ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE13vector_vectorERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
107
108
101
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
101
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
243k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
243k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
243k
        }
113
101
    }
_ZN5doris21GenericComparisonImplINS_8EqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
13
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
13
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
31
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
18
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
18
        }
113
13
    }
_ZN5doris21GenericComparisonImplINS_11NotEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
8
        }
113
8
    }
_ZN5doris21GenericComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
8
        }
113
8
    }
_ZN5doris21GenericComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
8
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
8
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
16
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
8
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
8
        }
113
8
    }
_ZN5doris21GenericComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
34
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
34
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
130k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
130k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
130k
        }
113
34
    }
_ZN5doris21GenericComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE15vector_constantERKNS_7IColumnES7_RNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE
Line
Count
Source
108
30
    static void vector_constant(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
109
30
        const auto& col_right = assert_cast<const ColumnConst&>(b).get_data_column();
110
113k
        for (size_t i = 0, size = a.size(); i < size; ++i) {
111
113k
            c[i] = Op::apply(a.compare_at(i, 0, col_right, 1), 0);
112
113k
        }
113
30
    }
114
115
0
    static void constant_vector(const IColumn& a, const IColumn& b, PaddedPODArray<UInt8>& c) {
116
0
        GenericComparisonImpl<typename Op::SymmetricOp>::vector_constant(b, a, c);
117
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
118
};
119
120
template <typename Op>
121
struct StringComparisonImpl {
122
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
123
                                                      const ColumnString::Offsets& a_offsets,
124
                                                      const ColumnString::Chars& b_data,
125
                                                      const ColumnString::Offsets& b_offsets,
126
361
                                                      PaddedPODArray<UInt8>& c) {
127
361
        size_t size = a_offsets.size();
128
361
        ColumnString::Offset prev_a_offset = 0;
129
361
        ColumnString::Offset prev_b_offset = 0;
130
361
        const auto* a_pos = a_data.data();
131
361
        const auto* b_pos = b_data.data();
132
133
1.01k
        for (size_t i = 0; i < size; ++i) {
134
658
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
658
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
658
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
658
                             0);
138
139
658
            prev_a_offset = a_offsets[i];
140
658
            prev_b_offset = b_offsets[i];
141
658
        }
142
361
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
126
2
                                                      PaddedPODArray<UInt8>& c) {
127
2
        size_t size = a_offsets.size();
128
2
        ColumnString::Offset prev_a_offset = 0;
129
2
        ColumnString::Offset prev_b_offset = 0;
130
2
        const auto* a_pos = a_data.data();
131
2
        const auto* b_pos = b_data.data();
132
133
49
        for (size_t i = 0; i < size; ++i) {
134
47
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
47
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
47
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
47
                             0);
138
139
47
            prev_a_offset = a_offsets[i];
140
47
            prev_b_offset = b_offsets[i];
141
47
        }
142
2
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
126
46
                                                      PaddedPODArray<UInt8>& c) {
127
46
        size_t size = a_offsets.size();
128
46
        ColumnString::Offset prev_a_offset = 0;
129
46
        ColumnString::Offset prev_b_offset = 0;
130
46
        const auto* a_pos = a_data.data();
131
46
        const auto* b_pos = b_data.data();
132
133
340
        for (size_t i = 0; i < size; ++i) {
134
294
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
294
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
294
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
294
                             0);
138
139
294
            prev_a_offset = a_offsets[i];
140
294
            prev_b_offset = b_offsets[i];
141
294
        }
142
46
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
Line
Count
Source
126
313
                                                      PaddedPODArray<UInt8>& c) {
127
313
        size_t size = a_offsets.size();
128
313
        ColumnString::Offset prev_a_offset = 0;
129
313
        ColumnString::Offset prev_b_offset = 0;
130
313
        const auto* a_pos = a_data.data();
131
313
        const auto* b_pos = b_data.data();
132
133
630
        for (size_t i = 0; i < size; ++i) {
134
317
            c[i] = Op::apply(memcmp_small_allow_overflow15(
135
317
                                     a_pos + prev_a_offset, a_offsets[i] - prev_a_offset,
136
317
                                     b_pos + prev_b_offset, b_offsets[i] - prev_b_offset),
137
317
                             0);
138
139
317
            prev_a_offset = a_offsets[i];
140
317
            prev_b_offset = b_offsets[i];
141
317
        }
142
313
    }
Unexecuted instantiation: _ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_SE_RS9_
143
144
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
145
                                                 const ColumnString::Offsets& a_offsets,
146
                                                 const ColumnString::Chars& b_data,
147
                                                 ColumnString::Offset b_size,
148
1.38k
                                                 PaddedPODArray<UInt8>& c) {
149
1.38k
        size_t size = a_offsets.size();
150
1.38k
        ColumnString::Offset prev_a_offset = 0;
151
1.38k
        const auto* a_pos = a_data.data();
152
1.38k
        const auto* b_pos = b_data.data();
153
154
1.04M
        for (size_t i = 0; i < size; ++i) {
155
1.04M
            c[i] = Op::apply(
156
1.04M
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
1.04M
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
1.04M
                    0);
159
160
1.04M
            prev_a_offset = a_offsets[i];
161
1.04M
        }
162
1.38k
    }
_ZN5doris20StringComparisonImplINS_9GreaterOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
196
                                                 PaddedPODArray<UInt8>& c) {
149
196
        size_t size = a_offsets.size();
150
196
        ColumnString::Offset prev_a_offset = 0;
151
196
        const auto* a_pos = a_data.data();
152
196
        const auto* b_pos = b_data.data();
153
154
324k
        for (size_t i = 0; i < size; ++i) {
155
323k
            c[i] = Op::apply(
156
323k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
323k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
323k
                    0);
159
160
323k
            prev_a_offset = a_offsets[i];
161
323k
        }
162
196
    }
_ZN5doris20StringComparisonImplINS_6LessOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
215
                                                 PaddedPODArray<UInt8>& c) {
149
215
        size_t size = a_offsets.size();
150
215
        ColumnString::Offset prev_a_offset = 0;
151
215
        const auto* a_pos = a_data.data();
152
215
        const auto* b_pos = b_data.data();
153
154
73.2k
        for (size_t i = 0; i < size; ++i) {
155
73.0k
            c[i] = Op::apply(
156
73.0k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
73.0k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
73.0k
                    0);
159
160
73.0k
            prev_a_offset = a_offsets[i];
161
73.0k
        }
162
215
    }
_ZN5doris20StringComparisonImplINS_17GreaterOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
464
                                                 PaddedPODArray<UInt8>& c) {
149
464
        size_t size = a_offsets.size();
150
464
        ColumnString::Offset prev_a_offset = 0;
151
464
        const auto* a_pos = a_data.data();
152
464
        const auto* b_pos = b_data.data();
153
154
354k
        for (size_t i = 0; i < size; ++i) {
155
353k
            c[i] = Op::apply(
156
353k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
353k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
353k
                    0);
159
160
353k
            prev_a_offset = a_offsets[i];
161
353k
        }
162
464
    }
_ZN5doris20StringComparisonImplINS_14LessOrEqualsOpILNS_13PrimitiveTypeE5EEEE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS5_IjLm4096ES8_Lm16ELm15EEESB_jRS9_
Line
Count
Source
148
508
                                                 PaddedPODArray<UInt8>& c) {
149
508
        size_t size = a_offsets.size();
150
508
        ColumnString::Offset prev_a_offset = 0;
151
508
        const auto* a_pos = a_data.data();
152
508
        const auto* b_pos = b_data.data();
153
154
293k
        for (size_t i = 0; i < size; ++i) {
155
293k
            c[i] = Op::apply(
156
293k
                    memcmp_small_allow_overflow15(a_pos + prev_a_offset,
157
293k
                                                  a_offsets[i] - prev_a_offset, b_pos, b_size),
158
293k
                    0);
159
160
293k
            prev_a_offset = a_offsets[i];
161
293k
        }
162
508
    }
163
164
    static void constant_string_vector(const ColumnString::Chars& a_data,
165
                                       ColumnString::Offset a_size,
166
                                       const ColumnString::Chars& b_data,
167
                                       const ColumnString::Offsets& b_offsets,
168
0
                                       PaddedPODArray<UInt8>& c) {
169
0
        StringComparisonImpl<typename Op::SymmetricOp>::string_vector_constant(b_data, b_offsets,
170
0
                                                                               a_data, a_size, c);
171
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_
172
};
173
174
template <bool positive>
175
struct StringEqualsImpl {
176
    static void NO_INLINE string_vector_string_vector(const ColumnString::Chars& a_data,
177
                                                      const ColumnString::Offsets& a_offsets,
178
                                                      const ColumnString::Chars& b_data,
179
                                                      const ColumnString::Offsets& b_offsets,
180
413
                                                      PaddedPODArray<UInt8>& c) {
181
413
        size_t size = a_offsets.size();
182
413
        ColumnString::Offset prev_a_offset = 0;
183
413
        ColumnString::Offset prev_b_offset = 0;
184
413
        const auto* a_pos = a_data.data();
185
413
        const auto* b_pos = b_data.data();
186
187
5.39k
        for (size_t i = 0; i < size; ++i) {
188
4.98k
            auto a_size = a_offsets[i] - prev_a_offset;
189
4.98k
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
4.98k
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
4.98k
                                                               b_pos + prev_b_offset, b_size);
193
194
4.98k
            prev_a_offset = a_offsets[i];
195
4.98k
            prev_b_offset = b_offsets[i];
196
4.98k
        }
197
413
    }
_ZN5doris16StringEqualsImplILb1EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
180
412
                                                      PaddedPODArray<UInt8>& c) {
181
412
        size_t size = a_offsets.size();
182
412
        ColumnString::Offset prev_a_offset = 0;
183
412
        ColumnString::Offset prev_b_offset = 0;
184
412
        const auto* a_pos = a_data.data();
185
412
        const auto* b_pos = b_data.data();
186
187
5.39k
        for (size_t i = 0; i < size; ++i) {
188
4.97k
            auto a_size = a_offsets[i] - prev_a_offset;
189
4.97k
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
4.97k
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
4.97k
                                                               b_pos + prev_b_offset, b_size);
193
194
4.97k
            prev_a_offset = a_offsets[i];
195
4.97k
            prev_b_offset = b_offsets[i];
196
4.97k
        }
197
412
    }
_ZN5doris16StringEqualsImplILb0EE27string_vector_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_SB_RS6_
Line
Count
Source
180
1
                                                      PaddedPODArray<UInt8>& c) {
181
1
        size_t size = a_offsets.size();
182
1
        ColumnString::Offset prev_a_offset = 0;
183
1
        ColumnString::Offset prev_b_offset = 0;
184
1
        const auto* a_pos = a_data.data();
185
1
        const auto* b_pos = b_data.data();
186
187
5
        for (size_t i = 0; i < size; ++i) {
188
4
            auto a_size = a_offsets[i] - prev_a_offset;
189
4
            auto b_size = b_offsets[i] - prev_b_offset;
190
191
4
            c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
192
4
                                                               b_pos + prev_b_offset, b_size);
193
194
4
            prev_a_offset = a_offsets[i];
195
4
            prev_b_offset = b_offsets[i];
196
4
        }
197
1
    }
198
199
    static void NO_INLINE string_vector_constant(const ColumnString::Chars& a_data,
200
                                                 const ColumnString::Offsets& a_offsets,
201
                                                 const ColumnString::Chars& b_data,
202
                                                 ColumnString::Offset b_size,
203
21.8k
                                                 PaddedPODArray<UInt8>& c) {
204
21.8k
        size_t size = a_offsets.size();
205
21.8k
        if (b_size == 0) {
206
41
            auto* __restrict data = c.data();
207
41
            auto* __restrict offsets = a_offsets.data();
208
209
41
            ColumnString::Offset prev_a_offset = 0;
210
1.22k
            for (size_t i = 0; i < size; ++i) {
211
1.18k
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
1.18k
                prev_a_offset = offsets[i];
213
1.18k
            }
214
21.7k
        } else {
215
21.7k
            ColumnString::Offset prev_a_offset = 0;
216
21.7k
            const auto* a_pos = a_data.data();
217
21.7k
            const auto* b_pos = b_data.data();
218
11.7M
            for (size_t i = 0; i < size; ++i) {
219
11.7M
                auto a_size = a_offsets[i] - prev_a_offset;
220
11.7M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
11.7M
                                                                   b_pos, b_size);
222
11.7M
                prev_a_offset = a_offsets[i];
223
11.7M
            }
224
21.7k
        }
225
21.8k
    }
_ZN5doris16StringEqualsImplILb1EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
21.0k
                                                 PaddedPODArray<UInt8>& c) {
204
21.0k
        size_t size = a_offsets.size();
205
21.0k
        if (b_size == 0) {
206
16
            auto* __restrict data = c.data();
207
16
            auto* __restrict offsets = a_offsets.data();
208
209
16
            ColumnString::Offset prev_a_offset = 0;
210
120
            for (size_t i = 0; i < size; ++i) {
211
104
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
104
                prev_a_offset = offsets[i];
213
104
            }
214
21.0k
        } else {
215
21.0k
            ColumnString::Offset prev_a_offset = 0;
216
21.0k
            const auto* a_pos = a_data.data();
217
21.0k
            const auto* b_pos = b_data.data();
218
11.4M
            for (size_t i = 0; i < size; ++i) {
219
11.4M
                auto a_size = a_offsets[i] - prev_a_offset;
220
11.4M
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
11.4M
                                                                   b_pos, b_size);
222
11.4M
                prev_a_offset = a_offsets[i];
223
11.4M
            }
224
21.0k
        }
225
21.0k
    }
_ZN5doris16StringEqualsImplILb0EE22string_vector_constantERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEERKNS2_IjLm4096ES5_Lm16ELm15EEES8_jRS6_
Line
Count
Source
203
746
                                                 PaddedPODArray<UInt8>& c) {
204
746
        size_t size = a_offsets.size();
205
746
        if (b_size == 0) {
206
25
            auto* __restrict data = c.data();
207
25
            auto* __restrict offsets = a_offsets.data();
208
209
25
            ColumnString::Offset prev_a_offset = 0;
210
1.10k
            for (size_t i = 0; i < size; ++i) {
211
1.07k
                data[i] = positive ? (offsets[i] == prev_a_offset) : (offsets[i] != prev_a_offset);
212
1.07k
                prev_a_offset = offsets[i];
213
1.07k
            }
214
721
        } else {
215
721
            ColumnString::Offset prev_a_offset = 0;
216
721
            const auto* a_pos = a_data.data();
217
721
            const auto* b_pos = b_data.data();
218
314k
            for (size_t i = 0; i < size; ++i) {
219
313k
                auto a_size = a_offsets[i] - prev_a_offset;
220
313k
                c[i] = positive == memequal_small_allow_overflow15(a_pos + prev_a_offset, a_size,
221
313k
                                                                   b_pos, b_size);
222
313k
                prev_a_offset = a_offsets[i];
223
313k
            }
224
721
        }
225
746
    }
226
227
    static void NO_INLINE constant_string_vector(const ColumnString::Chars& a_data,
228
                                                 ColumnString::Offset a_size,
229
                                                 const ColumnString::Chars& b_data,
230
                                                 const ColumnString::Offsets& b_offsets,
231
0
                                                 PaddedPODArray<UInt8>& c) {
232
0
        string_vector_constant(b_data, b_offsets, a_data, a_size, c);
233
0
    }
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb1EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
Unexecuted instantiation: _ZN5doris16StringEqualsImplILb0EE22constant_string_vectorERKNS_8PODArrayIhLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEjS8_RKNS2_IjLm4096ES5_Lm16ELm15EEERS6_
234
};
235
236
template <PrimitiveType PT>
237
struct StringComparisonImpl<EqualsOp<PT>> : StringEqualsImpl<true> {};
238
239
template <PrimitiveType PT>
240
struct StringComparisonImpl<NotEqualsOp<PT>> : StringEqualsImpl<false> {};
241
242
struct NameEquals {
243
    static constexpr auto name = "eq";
244
};
245
struct NameNotEquals {
246
    static constexpr auto name = "ne";
247
};
248
struct NameLess {
249
    static constexpr auto name = "lt";
250
};
251
struct NameGreater {
252
    static constexpr auto name = "gt";
253
};
254
struct NameLessOrEquals {
255
    static constexpr auto name = "le";
256
};
257
struct NameGreaterOrEquals {
258
    static constexpr auto name = "ge";
259
};
260
261
template <template <PrimitiveType> class Op, typename Name>
262
class FunctionComparison : public IFunction {
263
public:
264
    static constexpr auto name = Name::name;
265
500k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE6createEv
Line
Count
Source
265
424k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE6createEv
Line
Count
Source
265
1.35k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE6createEv
Line
Count
Source
265
6.49k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE6createEv
Line
Count
Source
265
31.9k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE6createEv
Line
Count
Source
265
3.32k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE6createEv
Line
Count
Source
265
32.8k
    static FunctionPtr create() { return std::make_shared<FunctionComparison>(); }
266
267
500k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEEC2Ev
Line
Count
Source
267
424k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEEC2Ev
Line
Count
Source
267
1.35k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEEC2Ev
Line
Count
Source
267
6.49k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEEC2Ev
Line
Count
Source
267
31.9k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_6LessOpENS_8NameLessEEC2Ev
Line
Count
Source
267
3.32k
    FunctionComparison() = default;
_ZN5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEEC2Ev
Line
Count
Source
267
32.9k
    FunctionComparison() = default;
268
269
1.24M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_costEv
Line
Count
Source
269
1.18M
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_costEv
Line
Count
Source
269
1.48k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_costEv
Line
Count
Source
269
7.29k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_costEv
Line
Count
Source
269
24.2k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_costEv
Line
Count
Source
269
3.85k
    double execute_cost() const override { return 0.5; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_costEv
Line
Count
Source
269
24.5k
    double execute_cost() const override { return 0.5; }
270
271
private:
272
    template <PrimitiveType PT>
273
    Status execute_num_type(Block& block, uint32_t result, const ColumnPtr& col_left_ptr,
274
111k
                            const ColumnPtr& col_right_ptr) const {
275
111k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
111k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
111k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
111k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
111k
        DCHECK(!(left_is_const && right_is_const));
282
283
111k
        if (!left_is_const && !right_is_const) {
284
12.9k
            auto col_res = ColumnUInt8::create();
285
286
12.9k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
12.9k
            vec_res.resize(col_left->get_data().size());
288
12.9k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
12.9k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
12.9k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
12.9k
                                                     vec_res);
292
293
12.9k
            block.replace_by_position(result, std::move(col_res));
294
99.0k
        } else if (!left_is_const && right_is_const) {
295
99.0k
            auto col_res = ColumnUInt8::create();
296
297
99.0k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
99.0k
            vec_res.resize(col_left->size());
299
99.0k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
99.0k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
99.0k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
99.0k
                                                       col_right->get_element(0), vec_res);
303
304
99.0k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
8
            auto col_res = ColumnUInt8::create();
307
308
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
8
            vec_res.resize(col_right->size());
310
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
8
                              typename PrimitiveTypeTraits<PT>::CppType,
312
8
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
8
                                                       col_right->get_data(), vec_res);
314
315
8
            block.replace_by_position(result, std::move(col_res));
316
8
        }
317
111k
        return Status::OK();
318
111k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
860
                            const ColumnPtr& col_right_ptr) const {
275
860
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
860
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
860
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
860
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
860
        DCHECK(!(left_is_const && right_is_const));
282
283
860
        if (!left_is_const && !right_is_const) {
284
76
            auto col_res = ColumnUInt8::create();
285
286
76
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
76
            vec_res.resize(col_left->get_data().size());
288
76
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
76
                              typename PrimitiveTypeTraits<PT>::CppType,
290
76
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
76
                                                     vec_res);
292
293
76
            block.replace_by_position(result, std::move(col_res));
294
784
        } else if (!left_is_const && right_is_const) {
295
784
            auto col_res = ColumnUInt8::create();
296
297
784
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
784
            vec_res.resize(col_left->size());
299
784
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
784
                              typename PrimitiveTypeTraits<PT>::CppType,
301
784
                              Op<PT>>::vector_constant(col_left->get_data(),
302
784
                                                       col_right->get_element(0), vec_res);
303
304
784
            block.replace_by_position(result, std::move(col_res));
305
784
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
860
        return Status::OK();
318
860
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.22k
                            const ColumnPtr& col_right_ptr) const {
275
1.22k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.22k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.22k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.22k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.22k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.22k
        if (!left_is_const && !right_is_const) {
284
237
            auto col_res = ColumnUInt8::create();
285
286
237
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
237
            vec_res.resize(col_left->get_data().size());
288
237
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
237
                              typename PrimitiveTypeTraits<PT>::CppType,
290
237
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
237
                                                     vec_res);
292
293
237
            block.replace_by_position(result, std::move(col_res));
294
985
        } else if (!left_is_const && right_is_const) {
295
985
            auto col_res = ColumnUInt8::create();
296
297
985
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
985
            vec_res.resize(col_left->size());
299
985
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
985
                              typename PrimitiveTypeTraits<PT>::CppType,
301
985
                              Op<PT>>::vector_constant(col_left->get_data(),
302
985
                                                       col_right->get_element(0), vec_res);
303
304
985
            block.replace_by_position(result, std::move(col_res));
305
985
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.22k
        return Status::OK();
318
1.22k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
708
                            const ColumnPtr& col_right_ptr) const {
275
708
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
708
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
708
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
708
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
708
        DCHECK(!(left_is_const && right_is_const));
282
283
708
        if (!left_is_const && !right_is_const) {
284
301
            auto col_res = ColumnUInt8::create();
285
286
301
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
301
            vec_res.resize(col_left->get_data().size());
288
301
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
301
                              typename PrimitiveTypeTraits<PT>::CppType,
290
301
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
301
                                                     vec_res);
292
293
301
            block.replace_by_position(result, std::move(col_res));
294
407
        } else if (!left_is_const && right_is_const) {
295
406
            auto col_res = ColumnUInt8::create();
296
297
406
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
406
            vec_res.resize(col_left->size());
299
406
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
406
                              typename PrimitiveTypeTraits<PT>::CppType,
301
406
                              Op<PT>>::vector_constant(col_left->get_data(),
302
406
                                                       col_right->get_element(0), vec_res);
303
304
406
            block.replace_by_position(result, std::move(col_res));
305
406
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
708
        return Status::OK();
318
708
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3
                            const ColumnPtr& col_right_ptr) const {
275
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3
        DCHECK(!(left_is_const && right_is_const));
282
283
3
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3
        return Status::OK();
318
3
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3.58k
                            const ColumnPtr& col_right_ptr) const {
275
3.58k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3.58k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3.58k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3.58k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3.58k
        DCHECK(!(left_is_const && right_is_const));
282
283
3.58k
        if (!left_is_const && !right_is_const) {
284
567
            auto col_res = ColumnUInt8::create();
285
286
567
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
567
            vec_res.resize(col_left->get_data().size());
288
567
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
567
                              typename PrimitiveTypeTraits<PT>::CppType,
290
567
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
567
                                                     vec_res);
292
293
567
            block.replace_by_position(result, std::move(col_res));
294
3.01k
        } else if (!left_is_const && right_is_const) {
295
3.01k
            auto col_res = ColumnUInt8::create();
296
297
3.01k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
3.01k
            vec_res.resize(col_left->size());
299
3.01k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
3.01k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
3.01k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
3.01k
                                                       col_right->get_element(0), vec_res);
303
304
3.01k
            block.replace_by_position(result, std::move(col_res));
305
3.01k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3.58k
        return Status::OK();
318
3.58k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
704
                            const ColumnPtr& col_right_ptr) const {
275
704
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
704
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
704
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
704
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
704
        DCHECK(!(left_is_const && right_is_const));
282
283
705
        if (!left_is_const && !right_is_const) {
284
116
            auto col_res = ColumnUInt8::create();
285
286
116
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
116
            vec_res.resize(col_left->get_data().size());
288
116
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
116
                              typename PrimitiveTypeTraits<PT>::CppType,
290
116
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
116
                                                     vec_res);
292
293
116
            block.replace_by_position(result, std::move(col_res));
294
589
        } else if (!left_is_const && right_is_const) {
295
589
            auto col_res = ColumnUInt8::create();
296
297
589
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
589
            vec_res.resize(col_left->size());
299
589
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
589
                              typename PrimitiveTypeTraits<PT>::CppType,
301
589
                              Op<PT>>::vector_constant(col_left->get_data(),
302
589
                                                       col_right->get_element(0), vec_res);
303
304
589
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
704
        return Status::OK();
318
704
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
6.91k
                            const ColumnPtr& col_right_ptr) const {
275
6.91k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
6.91k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
6.91k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
6.91k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
6.91k
        DCHECK(!(left_is_const && right_is_const));
282
283
6.91k
        if (!left_is_const && !right_is_const) {
284
295
            auto col_res = ColumnUInt8::create();
285
286
295
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
295
            vec_res.resize(col_left->get_data().size());
288
295
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
295
                              typename PrimitiveTypeTraits<PT>::CppType,
290
295
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
295
                                                     vec_res);
292
293
295
            block.replace_by_position(result, std::move(col_res));
294
6.61k
        } else if (!left_is_const && right_is_const) {
295
6.61k
            auto col_res = ColumnUInt8::create();
296
297
6.61k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
6.61k
            vec_res.resize(col_left->size());
299
6.61k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
6.61k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
6.61k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
6.61k
                                                       col_right->get_element(0), vec_res);
303
304
6.61k
            block.replace_by_position(result, std::move(col_res));
305
6.61k
        } else if (left_is_const && !right_is_const) {
306
8
            auto col_res = ColumnUInt8::create();
307
308
8
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
8
            vec_res.resize(col_right->size());
310
8
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
8
                              typename PrimitiveTypeTraits<PT>::CppType,
312
8
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
8
                                                       col_right->get_data(), vec_res);
314
315
8
            block.replace_by_position(result, std::move(col_res));
316
8
        }
317
6.91k
        return Status::OK();
318
6.91k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
9.77k
                            const ColumnPtr& col_right_ptr) const {
275
9.77k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
9.77k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
9.77k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
9.77k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
9.77k
        DCHECK(!(left_is_const && right_is_const));
282
283
9.77k
        if (!left_is_const && !right_is_const) {
284
473
            auto col_res = ColumnUInt8::create();
285
286
473
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
473
            vec_res.resize(col_left->get_data().size());
288
473
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
473
                              typename PrimitiveTypeTraits<PT>::CppType,
290
473
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
473
                                                     vec_res);
292
293
473
            block.replace_by_position(result, std::move(col_res));
294
9.30k
        } else if (!left_is_const && right_is_const) {
295
9.29k
            auto col_res = ColumnUInt8::create();
296
297
9.29k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
9.29k
            vec_res.resize(col_left->size());
299
9.29k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
9.29k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
9.29k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
9.29k
                                                       col_right->get_element(0), vec_res);
303
304
9.29k
            block.replace_by_position(result, std::move(col_res));
305
9.29k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
9.77k
        return Status::OK();
318
9.77k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
144
                            const ColumnPtr& col_right_ptr) const {
275
144
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
144
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
144
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
144
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
144
        DCHECK(!(left_is_const && right_is_const));
282
283
144
        if (!left_is_const && !right_is_const) {
284
104
            auto col_res = ColumnUInt8::create();
285
286
104
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
104
            vec_res.resize(col_left->get_data().size());
288
104
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
104
                              typename PrimitiveTypeTraits<PT>::CppType,
290
104
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
104
                                                     vec_res);
292
293
104
            block.replace_by_position(result, std::move(col_res));
294
104
        } else if (!left_is_const && right_is_const) {
295
40
            auto col_res = ColumnUInt8::create();
296
297
40
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
40
            vec_res.resize(col_left->size());
299
40
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
40
                              typename PrimitiveTypeTraits<PT>::CppType,
301
40
                              Op<PT>>::vector_constant(col_left->get_data(),
302
40
                                                       col_right->get_element(0), vec_res);
303
304
40
            block.replace_by_position(result, std::move(col_res));
305
40
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
144
        return Status::OK();
318
144
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
31
                            const ColumnPtr& col_right_ptr) const {
275
31
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
31
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
31
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
31
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
31
        DCHECK(!(left_is_const && right_is_const));
282
283
31
        if (!left_is_const && !right_is_const) {
284
16
            auto col_res = ColumnUInt8::create();
285
286
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
16
            vec_res.resize(col_left->get_data().size());
288
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              typename PrimitiveTypeTraits<PT>::CppType,
290
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
16
                                                     vec_res);
292
293
16
            block.replace_by_position(result, std::move(col_res));
294
16
        } else if (!left_is_const && right_is_const) {
295
15
            auto col_res = ColumnUInt8::create();
296
297
15
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
15
            vec_res.resize(col_left->size());
299
15
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
15
                              typename PrimitiveTypeTraits<PT>::CppType,
301
15
                              Op<PT>>::vector_constant(col_left->get_data(),
302
15
                                                       col_right->get_element(0), vec_res);
303
304
15
            block.replace_by_position(result, std::move(col_res));
305
15
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
31
        return Status::OK();
318
31
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
30
                            const ColumnPtr& col_right_ptr) const {
275
30
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
30
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
30
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
30
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
30
        DCHECK(!(left_is_const && right_is_const));
282
283
30
        if (!left_is_const && !right_is_const) {
284
24
            auto col_res = ColumnUInt8::create();
285
286
24
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
24
            vec_res.resize(col_left->get_data().size());
288
24
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
24
                              typename PrimitiveTypeTraits<PT>::CppType,
290
24
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
24
                                                     vec_res);
292
293
24
            block.replace_by_position(result, std::move(col_res));
294
24
        } else if (!left_is_const && right_is_const) {
295
6
            auto col_res = ColumnUInt8::create();
296
297
6
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
6
            vec_res.resize(col_left->size());
299
6
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
6
                              typename PrimitiveTypeTraits<PT>::CppType,
301
6
                              Op<PT>>::vector_constant(col_left->get_data(),
302
6
                                                       col_right->get_element(0), vec_res);
303
304
6
            block.replace_by_position(result, std::move(col_res));
305
6
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
30
        return Status::OK();
318
30
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
121
                            const ColumnPtr& col_right_ptr) const {
275
121
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
121
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
121
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
121
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
121
        DCHECK(!(left_is_const && right_is_const));
282
283
121
        if (!left_is_const && !right_is_const) {
284
117
            auto col_res = ColumnUInt8::create();
285
286
117
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
117
            vec_res.resize(col_left->get_data().size());
288
117
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
117
                              typename PrimitiveTypeTraits<PT>::CppType,
290
117
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
117
                                                     vec_res);
292
293
117
            block.replace_by_position(result, std::move(col_res));
294
117
        } else if (!left_is_const && right_is_const) {
295
4
            auto col_res = ColumnUInt8::create();
296
297
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
4
            vec_res.resize(col_left->size());
299
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
4
                              typename PrimitiveTypeTraits<PT>::CppType,
301
4
                              Op<PT>>::vector_constant(col_left->get_data(),
302
4
                                                       col_right->get_element(0), vec_res);
303
304
4
            block.replace_by_position(result, std::move(col_res));
305
4
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
121
        return Status::OK();
318
121
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
294
                            const ColumnPtr& col_right_ptr) const {
275
294
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
294
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
294
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
294
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
294
        DCHECK(!(left_is_const && right_is_const));
282
283
294
        if (!left_is_const && !right_is_const) {
284
107
            auto col_res = ColumnUInt8::create();
285
286
107
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
107
            vec_res.resize(col_left->get_data().size());
288
107
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
107
                              typename PrimitiveTypeTraits<PT>::CppType,
290
107
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
107
                                                     vec_res);
292
293
107
            block.replace_by_position(result, std::move(col_res));
294
187
        } else if (!left_is_const && right_is_const) {
295
187
            auto col_res = ColumnUInt8::create();
296
297
187
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
187
            vec_res.resize(col_left->size());
299
187
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
187
                              typename PrimitiveTypeTraits<PT>::CppType,
301
187
                              Op<PT>>::vector_constant(col_left->get_data(),
302
187
                                                       col_right->get_element(0), vec_res);
303
304
187
            block.replace_by_position(result, std::move(col_res));
305
187
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
294
        return Status::OK();
318
294
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
4
                            const ColumnPtr& col_right_ptr) const {
275
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
4
        DCHECK(!(left_is_const && right_is_const));
282
283
4
        if (!left_is_const && !right_is_const) {
284
4
            auto col_res = ColumnUInt8::create();
285
286
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
4
            vec_res.resize(col_left->get_data().size());
288
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
4
                              typename PrimitiveTypeTraits<PT>::CppType,
290
4
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
4
                                                     vec_res);
292
293
4
            block.replace_by_position(result, std::move(col_res));
294
4
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
4
        return Status::OK();
318
4
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
49
                            const ColumnPtr& col_right_ptr) const {
275
49
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
49
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
49
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
49
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
49
        DCHECK(!(left_is_const && right_is_const));
282
283
49
        if (!left_is_const && !right_is_const) {
284
39
            auto col_res = ColumnUInt8::create();
285
286
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
39
            vec_res.resize(col_left->get_data().size());
288
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
39
                              typename PrimitiveTypeTraits<PT>::CppType,
290
39
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
39
                                                     vec_res);
292
293
39
            block.replace_by_position(result, std::move(col_res));
294
39
        } else if (!left_is_const && right_is_const) {
295
10
            auto col_res = ColumnUInt8::create();
296
297
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
10
            vec_res.resize(col_left->size());
299
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
10
                              typename PrimitiveTypeTraits<PT>::CppType,
301
10
                              Op<PT>>::vector_constant(col_left->get_data(),
302
10
                                                       col_right->get_element(0), vec_res);
303
304
10
            block.replace_by_position(result, std::move(col_res));
305
10
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
49
        return Status::OK();
318
49
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2
                            const ColumnPtr& col_right_ptr) const {
275
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2
        DCHECK(!(left_is_const && right_is_const));
282
283
2
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
2
        } else if (!left_is_const && right_is_const) {
295
2
            auto col_res = ColumnUInt8::create();
296
297
2
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
2
            vec_res.resize(col_left->size());
299
2
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
2
                              typename PrimitiveTypeTraits<PT>::CppType,
301
2
                              Op<PT>>::vector_constant(col_left->get_data(),
302
2
                                                       col_right->get_element(0), vec_res);
303
304
2
            block.replace_by_position(result, std::move(col_res));
305
2
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2
        return Status::OK();
318
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
274
96
                            const ColumnPtr& col_right_ptr) const {
275
96
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
96
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
96
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
96
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
96
        DCHECK(!(left_is_const && right_is_const));
282
283
96
        if (!left_is_const && !right_is_const) {
284
64
            auto col_res = ColumnUInt8::create();
285
286
64
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
64
            vec_res.resize(col_left->get_data().size());
288
64
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
64
                              typename PrimitiveTypeTraits<PT>::CppType,
290
64
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
64
                                                     vec_res);
292
293
64
            block.replace_by_position(result, std::move(col_res));
294
64
        } else if (!left_is_const && right_is_const) {
295
32
            auto col_res = ColumnUInt8::create();
296
297
32
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
32
            vec_res.resize(col_left->size());
299
32
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
32
                              typename PrimitiveTypeTraits<PT>::CppType,
301
32
                              Op<PT>>::vector_constant(col_left->get_data(),
302
32
                                                       col_right->get_element(0), vec_res);
303
304
32
            block.replace_by_position(result, std::move(col_res));
305
32
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
96
        return Status::OK();
318
96
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
4
                            const ColumnPtr& col_right_ptr) const {
275
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
4
        DCHECK(!(left_is_const && right_is_const));
282
283
4
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
4
        } else if (!left_is_const && right_is_const) {
295
4
            auto col_res = ColumnUInt8::create();
296
297
4
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
4
            vec_res.resize(col_left->size());
299
4
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
4
                              typename PrimitiveTypeTraits<PT>::CppType,
301
4
                              Op<PT>>::vector_constant(col_left->get_data(),
302
4
                                                       col_right->get_element(0), vec_res);
303
304
4
            block.replace_by_position(result, std::move(col_res));
305
4
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
4
        return Status::OK();
318
4
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.18k
                            const ColumnPtr& col_right_ptr) const {
275
1.18k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.18k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.18k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.18k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.18k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.18k
        if (!left_is_const && !right_is_const) {
284
644
            auto col_res = ColumnUInt8::create();
285
286
644
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
644
            vec_res.resize(col_left->get_data().size());
288
644
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
644
                              typename PrimitiveTypeTraits<PT>::CppType,
290
644
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
644
                                                     vec_res);
292
293
644
            block.replace_by_position(result, std::move(col_res));
294
644
        } else if (!left_is_const && right_is_const) {
295
545
            auto col_res = ColumnUInt8::create();
296
297
545
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
545
            vec_res.resize(col_left->size());
299
545
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
545
                              typename PrimitiveTypeTraits<PT>::CppType,
301
545
                              Op<PT>>::vector_constant(col_left->get_data(),
302
545
                                                       col_right->get_element(0), vec_res);
303
304
545
            block.replace_by_position(result, std::move(col_res));
305
545
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.18k
        return Status::OK();
318
1.18k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
926
                            const ColumnPtr& col_right_ptr) const {
275
926
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
926
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
926
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
926
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
926
        DCHECK(!(left_is_const && right_is_const));
282
283
926
        if (!left_is_const && !right_is_const) {
284
385
            auto col_res = ColumnUInt8::create();
285
286
385
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
385
            vec_res.resize(col_left->get_data().size());
288
385
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
385
                              typename PrimitiveTypeTraits<PT>::CppType,
290
385
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
385
                                                     vec_res);
292
293
385
            block.replace_by_position(result, std::move(col_res));
294
541
        } else if (!left_is_const && right_is_const) {
295
541
            auto col_res = ColumnUInt8::create();
296
297
541
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
541
            vec_res.resize(col_left->size());
299
541
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
541
                              typename PrimitiveTypeTraits<PT>::CppType,
301
541
                              Op<PT>>::vector_constant(col_left->get_data(),
302
541
                                                       col_right->get_element(0), vec_res);
303
304
541
            block.replace_by_position(result, std::move(col_res));
305
541
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
926
        return Status::OK();
318
926
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
52
                            const ColumnPtr& col_right_ptr) const {
275
52
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
52
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
52
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
52
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
52
        DCHECK(!(left_is_const && right_is_const));
282
283
52
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
32
        } else if (!left_is_const && right_is_const) {
295
32
            auto col_res = ColumnUInt8::create();
296
297
32
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
32
            vec_res.resize(col_left->size());
299
32
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
32
                              typename PrimitiveTypeTraits<PT>::CppType,
301
32
                              Op<PT>>::vector_constant(col_left->get_data(),
302
32
                                                       col_right->get_element(0), vec_res);
303
304
32
            block.replace_by_position(result, std::move(col_res));
305
32
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
52
        return Status::OK();
318
52
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
72
                            const ColumnPtr& col_right_ptr) const {
275
72
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
72
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
72
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
72
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
72
        DCHECK(!(left_is_const && right_is_const));
282
283
72
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
52
        } else if (!left_is_const && right_is_const) {
295
52
            auto col_res = ColumnUInt8::create();
296
297
52
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
52
            vec_res.resize(col_left->size());
299
52
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
52
                              typename PrimitiveTypeTraits<PT>::CppType,
301
52
                              Op<PT>>::vector_constant(col_left->get_data(),
302
52
                                                       col_right->get_element(0), vec_res);
303
304
52
            block.replace_by_position(result, std::move(col_res));
305
52
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
72
        return Status::OK();
318
72
    }
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
274
1.36k
                            const ColumnPtr& col_right_ptr) const {
275
1.36k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.36k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.36k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.36k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.36k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.36k
        if (!left_is_const && !right_is_const) {
284
1.25k
            auto col_res = ColumnUInt8::create();
285
286
1.25k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.25k
            vec_res.resize(col_left->get_data().size());
288
1.25k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.25k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.25k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.25k
                                                     vec_res);
292
293
1.25k
            block.replace_by_position(result, std::move(col_res));
294
1.25k
        } else if (!left_is_const && right_is_const) {
295
114
            auto col_res = ColumnUInt8::create();
296
297
114
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
114
            vec_res.resize(col_left->size());
299
114
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
114
                              typename PrimitiveTypeTraits<PT>::CppType,
301
114
                              Op<PT>>::vector_constant(col_left->get_data(),
302
114
                                                       col_right->get_element(0), vec_res);
303
304
114
            block.replace_by_position(result, std::move(col_res));
305
114
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.36k
        return Status::OK();
318
1.36k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
59
                            const ColumnPtr& col_right_ptr) const {
275
59
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
59
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
59
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
59
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
59
        DCHECK(!(left_is_const && right_is_const));
282
283
59
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
59
        } else if (!left_is_const && right_is_const) {
295
59
            auto col_res = ColumnUInt8::create();
296
297
59
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
59
            vec_res.resize(col_left->size());
299
59
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
59
                              typename PrimitiveTypeTraits<PT>::CppType,
301
59
                              Op<PT>>::vector_constant(col_left->get_data(),
302
59
                                                       col_right->get_element(0), vec_res);
303
304
59
            block.replace_by_position(result, std::move(col_res));
305
59
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
59
        return Status::OK();
318
59
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3
                            const ColumnPtr& col_right_ptr) const {
275
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3
        DCHECK(!(left_is_const && right_is_const));
282
283
3
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3
        return Status::OK();
318
3
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
619
                            const ColumnPtr& col_right_ptr) const {
275
619
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
619
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
619
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
619
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
619
        DCHECK(!(left_is_const && right_is_const));
282
283
620
        if (!left_is_const && !right_is_const) {
284
202
            auto col_res = ColumnUInt8::create();
285
286
202
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
202
            vec_res.resize(col_left->get_data().size());
288
202
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
202
                              typename PrimitiveTypeTraits<PT>::CppType,
290
202
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
202
                                                     vec_res);
292
293
202
            block.replace_by_position(result, std::move(col_res));
294
418
        } else if (!left_is_const && right_is_const) {
295
418
            auto col_res = ColumnUInt8::create();
296
297
418
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
418
            vec_res.resize(col_left->size());
299
418
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
418
                              typename PrimitiveTypeTraits<PT>::CppType,
301
418
                              Op<PT>>::vector_constant(col_left->get_data(),
302
418
                                                       col_right->get_element(0), vec_res);
303
304
418
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
619
        return Status::OK();
318
619
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
876
                            const ColumnPtr& col_right_ptr) const {
275
876
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
876
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
876
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
876
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
876
        DCHECK(!(left_is_const && right_is_const));
282
283
877
        if (!left_is_const && !right_is_const) {
284
423
            auto col_res = ColumnUInt8::create();
285
286
423
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
423
            vec_res.resize(col_left->get_data().size());
288
423
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
423
                              typename PrimitiveTypeTraits<PT>::CppType,
290
423
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
423
                                                     vec_res);
292
293
423
            block.replace_by_position(result, std::move(col_res));
294
454
        } else if (!left_is_const && right_is_const) {
295
454
            auto col_res = ColumnUInt8::create();
296
297
454
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
454
            vec_res.resize(col_left->size());
299
454
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
454
                              typename PrimitiveTypeTraits<PT>::CppType,
301
454
                              Op<PT>>::vector_constant(col_left->get_data(),
302
454
                                                       col_right->get_element(0), vec_res);
303
304
454
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
876
        return Status::OK();
318
876
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
12.0k
                            const ColumnPtr& col_right_ptr) const {
275
12.0k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
12.0k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
12.0k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
12.0k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
12.0k
        DCHECK(!(left_is_const && right_is_const));
282
283
12.0k
        if (!left_is_const && !right_is_const) {
284
2.94k
            auto col_res = ColumnUInt8::create();
285
286
2.94k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
2.94k
            vec_res.resize(col_left->get_data().size());
288
2.94k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
2.94k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
2.94k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
2.94k
                                                     vec_res);
292
293
2.94k
            block.replace_by_position(result, std::move(col_res));
294
9.07k
        } else if (!left_is_const && right_is_const) {
295
9.07k
            auto col_res = ColumnUInt8::create();
296
297
9.07k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
9.07k
            vec_res.resize(col_left->size());
299
9.07k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
9.07k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
9.07k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
9.07k
                                                       col_right->get_element(0), vec_res);
303
304
9.07k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
12.0k
        return Status::OK();
318
12.0k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
8.23k
                            const ColumnPtr& col_right_ptr) const {
275
8.23k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
8.23k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
8.23k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
8.23k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
8.23k
        DCHECK(!(left_is_const && right_is_const));
282
283
8.23k
        if (!left_is_const && !right_is_const) {
284
161
            auto col_res = ColumnUInt8::create();
285
286
161
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
161
            vec_res.resize(col_left->get_data().size());
288
161
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
161
                              typename PrimitiveTypeTraits<PT>::CppType,
290
161
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
161
                                                     vec_res);
292
293
161
            block.replace_by_position(result, std::move(col_res));
294
8.07k
        } else if (!left_is_const && right_is_const) {
295
8.07k
            auto col_res = ColumnUInt8::create();
296
297
8.07k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
8.07k
            vec_res.resize(col_left->size());
299
8.07k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
8.07k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
8.07k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
8.07k
                                                       col_right->get_element(0), vec_res);
303
304
8.07k
            block.replace_by_position(result, std::move(col_res));
305
8.07k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
8.23k
        return Status::OK();
318
8.23k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
247
                            const ColumnPtr& col_right_ptr) const {
275
247
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
247
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
247
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
247
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
247
        DCHECK(!(left_is_const && right_is_const));
282
283
248
        if (!left_is_const && !right_is_const) {
284
41
            auto col_res = ColumnUInt8::create();
285
286
41
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
41
            vec_res.resize(col_left->get_data().size());
288
41
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
41
                              typename PrimitiveTypeTraits<PT>::CppType,
290
41
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
41
                                                     vec_res);
292
293
41
            block.replace_by_position(result, std::move(col_res));
294
207
        } else if (!left_is_const && right_is_const) {
295
207
            auto col_res = ColumnUInt8::create();
296
297
207
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
207
            vec_res.resize(col_left->size());
299
207
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
207
                              typename PrimitiveTypeTraits<PT>::CppType,
301
207
                              Op<PT>>::vector_constant(col_left->get_data(),
302
207
                                                       col_right->get_element(0), vec_res);
303
304
207
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
247
        return Status::OK();
318
247
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2
                            const ColumnPtr& col_right_ptr) const {
275
2
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2
        DCHECK(!(left_is_const && right_is_const));
282
283
2
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
1
        } else if (!left_is_const && right_is_const) {
295
1
            auto col_res = ColumnUInt8::create();
296
297
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1
            vec_res.resize(col_left->size());
299
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1
                                                       col_right->get_element(0), vec_res);
303
304
1
            block.replace_by_position(result, std::move(col_res));
305
1
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2
        return Status::OK();
318
2
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1
                            const ColumnPtr& col_right_ptr) const {
275
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1
        DCHECK(!(left_is_const && right_is_const));
282
283
1
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
1
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1
        return Status::OK();
318
1
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
232
                            const ColumnPtr& col_right_ptr) const {
275
232
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
232
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
232
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
232
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
232
        DCHECK(!(left_is_const && right_is_const));
282
283
232
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
212
        } else if (!left_is_const && right_is_const) {
295
212
            auto col_res = ColumnUInt8::create();
296
297
212
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
212
            vec_res.resize(col_left->size());
299
212
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
212
                              typename PrimitiveTypeTraits<PT>::CppType,
301
212
                              Op<PT>>::vector_constant(col_left->get_data(),
302
212
                                                       col_right->get_element(0), vec_res);
303
304
212
            block.replace_by_position(result, std::move(col_res));
305
212
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
232
        return Status::OK();
318
232
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.74k
                            const ColumnPtr& col_right_ptr) const {
275
1.74k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.74k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.74k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.74k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.74k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.74k
        if (!left_is_const && !right_is_const) {
284
39
            auto col_res = ColumnUInt8::create();
285
286
39
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
39
            vec_res.resize(col_left->get_data().size());
288
39
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
39
                              typename PrimitiveTypeTraits<PT>::CppType,
290
39
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
39
                                                     vec_res);
292
293
39
            block.replace_by_position(result, std::move(col_res));
294
1.70k
        } else if (!left_is_const && right_is_const) {
295
1.70k
            auto col_res = ColumnUInt8::create();
296
297
1.70k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.70k
            vec_res.resize(col_left->size());
299
1.70k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.70k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.70k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.70k
                                                       col_right->get_element(0), vec_res);
303
304
1.70k
            block.replace_by_position(result, std::move(col_res));
305
1.70k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.74k
        return Status::OK();
318
1.74k
    }
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
274
126
                            const ColumnPtr& col_right_ptr) const {
275
126
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
126
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
126
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
126
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
126
        DCHECK(!(left_is_const && right_is_const));
282
283
126
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
126
        } else if (!left_is_const && right_is_const) {
295
126
            auto col_res = ColumnUInt8::create();
296
297
126
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
126
            vec_res.resize(col_left->size());
299
126
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
126
                              typename PrimitiveTypeTraits<PT>::CppType,
301
126
                              Op<PT>>::vector_constant(col_left->get_data(),
302
126
                                                       col_right->get_element(0), vec_res);
303
304
126
            block.replace_by_position(result, std::move(col_res));
305
126
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
126
        return Status::OK();
318
126
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.46k
                            const ColumnPtr& col_right_ptr) const {
275
1.46k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.46k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.46k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.46k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.46k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.46k
        if (!left_is_const && !right_is_const) {
284
7
            auto col_res = ColumnUInt8::create();
285
286
7
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
7
            vec_res.resize(col_left->get_data().size());
288
7
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
7
                              typename PrimitiveTypeTraits<PT>::CppType,
290
7
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
7
                                                     vec_res);
292
293
7
            block.replace_by_position(result, std::move(col_res));
294
1.45k
        } else if (!left_is_const && right_is_const) {
295
1.45k
            auto col_res = ColumnUInt8::create();
296
297
1.45k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.45k
            vec_res.resize(col_left->size());
299
1.45k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.45k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.45k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.45k
                                                       col_right->get_element(0), vec_res);
303
304
1.45k
            block.replace_by_position(result, std::move(col_res));
305
1.45k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.46k
        return Status::OK();
318
1.46k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
484
                            const ColumnPtr& col_right_ptr) const {
275
484
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
484
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
484
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
484
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
484
        DCHECK(!(left_is_const && right_is_const));
282
283
484
        if (!left_is_const && !right_is_const) {
284
10
            auto col_res = ColumnUInt8::create();
285
286
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
10
            vec_res.resize(col_left->get_data().size());
288
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
10
                              typename PrimitiveTypeTraits<PT>::CppType,
290
10
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
10
                                                     vec_res);
292
293
10
            block.replace_by_position(result, std::move(col_res));
294
474
        } else if (!left_is_const && right_is_const) {
295
473
            auto col_res = ColumnUInt8::create();
296
297
473
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
473
            vec_res.resize(col_left->size());
299
473
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
473
                              typename PrimitiveTypeTraits<PT>::CppType,
301
473
                              Op<PT>>::vector_constant(col_left->get_data(),
302
473
                                                       col_right->get_element(0), vec_res);
303
304
473
            block.replace_by_position(result, std::move(col_res));
305
473
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
484
        return Status::OK();
318
484
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3
                            const ColumnPtr& col_right_ptr) const {
275
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3
        DCHECK(!(left_is_const && right_is_const));
282
283
3
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3
        return Status::OK();
318
3
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
96
                            const ColumnPtr& col_right_ptr) const {
275
96
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
96
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
96
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
96
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
96
        DCHECK(!(left_is_const && right_is_const));
282
283
96
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
96
        } else if (!left_is_const && right_is_const) {
295
96
            auto col_res = ColumnUInt8::create();
296
297
96
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
96
            vec_res.resize(col_left->size());
299
96
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
96
                              typename PrimitiveTypeTraits<PT>::CppType,
301
96
                              Op<PT>>::vector_constant(col_left->get_data(),
302
96
                                                       col_right->get_element(0), vec_res);
303
304
96
            block.replace_by_position(result, std::move(col_res));
305
96
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
96
        return Status::OK();
318
96
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
131
                            const ColumnPtr& col_right_ptr) const {
275
131
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
131
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
131
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
131
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
131
        DCHECK(!(left_is_const && right_is_const));
282
283
131
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
131
        } else if (!left_is_const && right_is_const) {
295
131
            auto col_res = ColumnUInt8::create();
296
297
131
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
131
            vec_res.resize(col_left->size());
299
131
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
131
                              typename PrimitiveTypeTraits<PT>::CppType,
301
131
                              Op<PT>>::vector_constant(col_left->get_data(),
302
131
                                                       col_right->get_element(0), vec_res);
303
304
131
            block.replace_by_position(result, std::move(col_res));
305
131
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
131
        return Status::OK();
318
131
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
20.9k
                            const ColumnPtr& col_right_ptr) const {
275
20.9k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
20.9k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
20.9k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
20.9k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
20.9k
        DCHECK(!(left_is_const && right_is_const));
282
283
20.9k
        if (!left_is_const && !right_is_const) {
284
9
            auto col_res = ColumnUInt8::create();
285
286
9
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
9
            vec_res.resize(col_left->get_data().size());
288
9
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
9
                              typename PrimitiveTypeTraits<PT>::CppType,
290
9
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
9
                                                     vec_res);
292
293
9
            block.replace_by_position(result, std::move(col_res));
294
20.9k
        } else if (!left_is_const && right_is_const) {
295
20.9k
            auto col_res = ColumnUInt8::create();
296
297
20.9k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
20.9k
            vec_res.resize(col_left->size());
299
20.9k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
20.9k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
20.9k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
20.9k
                                                       col_right->get_element(0), vec_res);
303
304
20.9k
            block.replace_by_position(result, std::move(col_res));
305
20.9k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
20.9k
        return Status::OK();
318
20.9k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
436
                            const ColumnPtr& col_right_ptr) const {
275
436
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
436
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
436
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
436
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
436
        DCHECK(!(left_is_const && right_is_const));
282
283
436
        if (!left_is_const && !right_is_const) {
284
19
            auto col_res = ColumnUInt8::create();
285
286
19
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
19
            vec_res.resize(col_left->get_data().size());
288
19
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
19
                              typename PrimitiveTypeTraits<PT>::CppType,
290
19
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
19
                                                     vec_res);
292
293
19
            block.replace_by_position(result, std::move(col_res));
294
417
        } else if (!left_is_const && right_is_const) {
295
417
            auto col_res = ColumnUInt8::create();
296
297
417
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
417
            vec_res.resize(col_left->size());
299
417
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
417
                              typename PrimitiveTypeTraits<PT>::CppType,
301
417
                              Op<PT>>::vector_constant(col_left->get_data(),
302
417
                                                       col_right->get_element(0), vec_res);
303
304
417
            block.replace_by_position(result, std::move(col_res));
305
417
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
436
        return Status::OK();
318
436
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
27
                            const ColumnPtr& col_right_ptr) const {
275
27
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
27
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
27
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
27
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
27
        DCHECK(!(left_is_const && right_is_const));
282
283
27
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
27
        } else if (!left_is_const && right_is_const) {
295
27
            auto col_res = ColumnUInt8::create();
296
297
27
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
27
            vec_res.resize(col_left->size());
299
27
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
27
                              typename PrimitiveTypeTraits<PT>::CppType,
301
27
                              Op<PT>>::vector_constant(col_left->get_data(),
302
27
                                                       col_right->get_element(0), vec_res);
303
304
27
            block.replace_by_position(result, std::move(col_res));
305
27
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
27
        return Status::OK();
318
27
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
11
                            const ColumnPtr& col_right_ptr) const {
275
11
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
11
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
11
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
11
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
11
        DCHECK(!(left_is_const && right_is_const));
282
283
11
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
10
        } else if (!left_is_const && right_is_const) {
295
10
            auto col_res = ColumnUInt8::create();
296
297
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
10
            vec_res.resize(col_left->size());
299
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
10
                              typename PrimitiveTypeTraits<PT>::CppType,
301
10
                              Op<PT>>::vector_constant(col_left->get_data(),
302
10
                                                       col_right->get_element(0), vec_res);
303
304
10
            block.replace_by_position(result, std::move(col_res));
305
10
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
11
        return Status::OK();
318
11
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1
                            const ColumnPtr& col_right_ptr) const {
275
1
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1
        DCHECK(!(left_is_const && right_is_const));
282
283
1
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
1
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1
        return Status::OK();
318
1
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
102
                            const ColumnPtr& col_right_ptr) const {
275
102
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
102
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
102
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
102
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
102
        DCHECK(!(left_is_const && right_is_const));
282
283
102
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
82
        } else if (!left_is_const && right_is_const) {
295
82
            auto col_res = ColumnUInt8::create();
296
297
82
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
82
            vec_res.resize(col_left->size());
299
82
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
82
                              typename PrimitiveTypeTraits<PT>::CppType,
301
82
                              Op<PT>>::vector_constant(col_left->get_data(),
302
82
                                                       col_right->get_element(0), vec_res);
303
304
82
            block.replace_by_position(result, std::move(col_res));
305
82
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
102
        return Status::OK();
318
102
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
213
                            const ColumnPtr& col_right_ptr) const {
275
213
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
213
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
213
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
213
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
213
        DCHECK(!(left_is_const && right_is_const));
282
283
213
        if (!left_is_const && !right_is_const) {
284
84
            auto col_res = ColumnUInt8::create();
285
286
84
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
84
            vec_res.resize(col_left->get_data().size());
288
84
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
84
                              typename PrimitiveTypeTraits<PT>::CppType,
290
84
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
84
                                                     vec_res);
292
293
84
            block.replace_by_position(result, std::move(col_res));
294
129
        } else if (!left_is_const && right_is_const) {
295
129
            auto col_res = ColumnUInt8::create();
296
297
129
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
129
            vec_res.resize(col_left->size());
299
129
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
129
                              typename PrimitiveTypeTraits<PT>::CppType,
301
129
                              Op<PT>>::vector_constant(col_left->get_data(),
302
129
                                                       col_right->get_element(0), vec_res);
303
304
129
            block.replace_by_position(result, std::move(col_res));
305
129
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
213
        return Status::OK();
318
213
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE2EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
81
                            const ColumnPtr& col_right_ptr) const {
275
81
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
81
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
81
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
81
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
81
        DCHECK(!(left_is_const && right_is_const));
282
283
81
        if (!left_is_const && !right_is_const) {
284
81
            auto col_res = ColumnUInt8::create();
285
286
81
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
81
            vec_res.resize(col_left->get_data().size());
288
81
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
81
                              typename PrimitiveTypeTraits<PT>::CppType,
290
81
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
81
                                                     vec_res);
292
293
81
            block.replace_by_position(result, std::move(col_res));
294
81
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
81
        return Status::OK();
318
81
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.03k
                            const ColumnPtr& col_right_ptr) const {
275
2.03k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.03k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.03k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.03k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.03k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.03k
        if (!left_is_const && !right_is_const) {
284
1.62k
            auto col_res = ColumnUInt8::create();
285
286
1.62k
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1.62k
            vec_res.resize(col_left->get_data().size());
288
1.62k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1.62k
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1.62k
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1.62k
                                                     vec_res);
292
293
1.62k
            block.replace_by_position(result, std::move(col_res));
294
1.62k
        } else if (!left_is_const && right_is_const) {
295
411
            auto col_res = ColumnUInt8::create();
296
297
411
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
411
            vec_res.resize(col_left->size());
299
411
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
411
                              typename PrimitiveTypeTraits<PT>::CppType,
301
411
                              Op<PT>>::vector_constant(col_left->get_data(),
302
411
                                                       col_right->get_element(0), vec_res);
303
304
411
            block.replace_by_position(result, std::move(col_res));
305
411
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2.03k
        return Status::OK();
318
2.03k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
453
                            const ColumnPtr& col_right_ptr) const {
275
453
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
453
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
453
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
453
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
453
        DCHECK(!(left_is_const && right_is_const));
282
283
453
        if (!left_is_const && !right_is_const) {
284
242
            auto col_res = ColumnUInt8::create();
285
286
242
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
242
            vec_res.resize(col_left->get_data().size());
288
242
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
242
                              typename PrimitiveTypeTraits<PT>::CppType,
290
242
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
242
                                                     vec_res);
292
293
242
            block.replace_by_position(result, std::move(col_res));
294
242
        } else if (!left_is_const && right_is_const) {
295
211
            auto col_res = ColumnUInt8::create();
296
297
211
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
211
            vec_res.resize(col_left->size());
299
211
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
211
                              typename PrimitiveTypeTraits<PT>::CppType,
301
211
                              Op<PT>>::vector_constant(col_left->get_data(),
302
211
                                                       col_right->get_element(0), vec_res);
303
304
211
            block.replace_by_position(result, std::move(col_res));
305
211
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
453
        return Status::OK();
318
453
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
4
                            const ColumnPtr& col_right_ptr) const {
275
4
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
4
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
4
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
4
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
4
        DCHECK(!(left_is_const && right_is_const));
282
283
4
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
1
            auto col_res = ColumnUInt8::create();
296
297
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1
            vec_res.resize(col_left->size());
299
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1
                                                       col_right->get_element(0), vec_res);
303
304
1
            block.replace_by_position(result, std::move(col_res));
305
1
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
4
        return Status::OK();
318
4
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
540
                            const ColumnPtr& col_right_ptr) const {
275
540
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
540
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
540
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
540
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
540
        DCHECK(!(left_is_const && right_is_const));
282
283
540
        if (!left_is_const && !right_is_const) {
284
491
            auto col_res = ColumnUInt8::create();
285
286
491
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
491
            vec_res.resize(col_left->get_data().size());
288
491
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
491
                              typename PrimitiveTypeTraits<PT>::CppType,
290
491
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
491
                                                     vec_res);
292
293
491
            block.replace_by_position(result, std::move(col_res));
294
491
        } else if (!left_is_const && right_is_const) {
295
49
            auto col_res = ColumnUInt8::create();
296
297
49
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
49
            vec_res.resize(col_left->size());
299
49
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
49
                              typename PrimitiveTypeTraits<PT>::CppType,
301
49
                              Op<PT>>::vector_constant(col_left->get_data(),
302
49
                                                       col_right->get_element(0), vec_res);
303
304
49
            block.replace_by_position(result, std::move(col_res));
305
49
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
540
        return Status::OK();
318
540
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
210
                            const ColumnPtr& col_right_ptr) const {
275
210
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
210
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
210
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
210
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
210
        DCHECK(!(left_is_const && right_is_const));
282
283
210
        if (!left_is_const && !right_is_const) {
284
106
            auto col_res = ColumnUInt8::create();
285
286
106
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
106
            vec_res.resize(col_left->get_data().size());
288
106
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
106
                              typename PrimitiveTypeTraits<PT>::CppType,
290
106
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
106
                                                     vec_res);
292
293
106
            block.replace_by_position(result, std::move(col_res));
294
106
        } else if (!left_is_const && right_is_const) {
295
104
            auto col_res = ColumnUInt8::create();
296
297
104
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
104
            vec_res.resize(col_left->size());
299
104
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
104
                              typename PrimitiveTypeTraits<PT>::CppType,
301
104
                              Op<PT>>::vector_constant(col_left->get_data(),
302
104
                                                       col_right->get_element(0), vec_res);
303
304
104
            block.replace_by_position(result, std::move(col_res));
305
104
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
210
        return Status::OK();
318
210
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
2.02k
                            const ColumnPtr& col_right_ptr) const {
275
2.02k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
2.02k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
2.02k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
2.02k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
2.02k
        DCHECK(!(left_is_const && right_is_const));
282
283
2.02k
        if (!left_is_const && !right_is_const) {
284
161
            auto col_res = ColumnUInt8::create();
285
286
161
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
161
            vec_res.resize(col_left->get_data().size());
288
161
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
161
                              typename PrimitiveTypeTraits<PT>::CppType,
290
161
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
161
                                                     vec_res);
292
293
161
            block.replace_by_position(result, std::move(col_res));
294
1.86k
        } else if (!left_is_const && right_is_const) {
295
1.86k
            auto col_res = ColumnUInt8::create();
296
297
1.86k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.86k
            vec_res.resize(col_left->size());
299
1.86k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.86k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.86k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.86k
                                                       col_right->get_element(0), vec_res);
303
304
1.86k
            block.replace_by_position(result, std::move(col_res));
305
1.86k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
2.02k
        return Status::OK();
318
2.02k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
1.28k
                            const ColumnPtr& col_right_ptr) const {
275
1.28k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
1.28k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
1.28k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
1.28k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
1.28k
        DCHECK(!(left_is_const && right_is_const));
282
283
1.28k
        if (!left_is_const && !right_is_const) {
284
270
            auto col_res = ColumnUInt8::create();
285
286
270
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
270
            vec_res.resize(col_left->get_data().size());
288
270
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
270
                              typename PrimitiveTypeTraits<PT>::CppType,
290
270
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
270
                                                     vec_res);
292
293
270
            block.replace_by_position(result, std::move(col_res));
294
1.01k
        } else if (!left_is_const && right_is_const) {
295
1.01k
            auto col_res = ColumnUInt8::create();
296
297
1.01k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
1.01k
            vec_res.resize(col_left->size());
299
1.01k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
1.01k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
1.01k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
1.01k
                                                       col_right->get_element(0), vec_res);
303
304
1.01k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
1.28k
        return Status::OK();
318
1.28k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
197
                            const ColumnPtr& col_right_ptr) const {
275
197
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
197
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
197
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
197
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
197
        DCHECK(!(left_is_const && right_is_const));
282
283
197
        if (!left_is_const && !right_is_const) {
284
184
            auto col_res = ColumnUInt8::create();
285
286
184
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
184
            vec_res.resize(col_left->get_data().size());
288
184
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
184
                              typename PrimitiveTypeTraits<PT>::CppType,
290
184
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
184
                                                     vec_res);
292
293
184
            block.replace_by_position(result, std::move(col_res));
294
184
        } else if (!left_is_const && right_is_const) {
295
13
            auto col_res = ColumnUInt8::create();
296
297
13
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
13
            vec_res.resize(col_left->size());
299
13
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
13
                              typename PrimitiveTypeTraits<PT>::CppType,
301
13
                              Op<PT>>::vector_constant(col_left->get_data(),
302
13
                                                       col_right->get_element(0), vec_res);
303
304
13
            block.replace_by_position(result, std::move(col_res));
305
13
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
197
        return Status::OK();
318
197
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
16
                            const ColumnPtr& col_right_ptr) const {
275
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
16
        DCHECK(!(left_is_const && right_is_const));
282
283
16
        if (!left_is_const && !right_is_const) {
284
16
            auto col_res = ColumnUInt8::create();
285
286
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
16
            vec_res.resize(col_left->get_data().size());
288
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              typename PrimitiveTypeTraits<PT>::CppType,
290
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
16
                                                     vec_res);
292
293
16
            block.replace_by_position(result, std::move(col_res));
294
16
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
16
        return Status::OK();
318
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE37EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
16
                            const ColumnPtr& col_right_ptr) const {
275
16
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
16
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
16
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
16
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
16
        DCHECK(!(left_is_const && right_is_const));
282
283
16
        if (!left_is_const && !right_is_const) {
284
16
            auto col_res = ColumnUInt8::create();
285
286
16
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
16
            vec_res.resize(col_left->get_data().size());
288
16
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
16
                              typename PrimitiveTypeTraits<PT>::CppType,
290
16
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
16
                                                     vec_res);
292
293
16
            block.replace_by_position(result, std::move(col_res));
294
16
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
16
        return Status::OK();
318
16
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE8EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
155
                            const ColumnPtr& col_right_ptr) const {
275
155
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
155
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
155
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
155
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
155
        DCHECK(!(left_is_const && right_is_const));
282
283
155
        if (!left_is_const && !right_is_const) {
284
134
            auto col_res = ColumnUInt8::create();
285
286
134
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
134
            vec_res.resize(col_left->get_data().size());
288
134
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
134
                              typename PrimitiveTypeTraits<PT>::CppType,
290
134
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
134
                                                     vec_res);
292
293
134
            block.replace_by_position(result, std::move(col_res));
294
134
        } else if (!left_is_const && right_is_const) {
295
21
            auto col_res = ColumnUInt8::create();
296
297
21
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
21
            vec_res.resize(col_left->size());
299
21
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
21
                              typename PrimitiveTypeTraits<PT>::CppType,
301
21
                              Op<PT>>::vector_constant(col_left->get_data(),
302
21
                                                       col_right->get_element(0), vec_res);
303
304
21
            block.replace_by_position(result, std::move(col_res));
305
21
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
155
        return Status::OK();
318
155
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
339
                            const ColumnPtr& col_right_ptr) const {
275
339
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
339
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
339
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
339
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
339
        DCHECK(!(left_is_const && right_is_const));
282
283
339
        if (!left_is_const && !right_is_const) {
284
144
            auto col_res = ColumnUInt8::create();
285
286
144
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
144
            vec_res.resize(col_left->get_data().size());
288
144
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
144
                              typename PrimitiveTypeTraits<PT>::CppType,
290
144
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
144
                                                     vec_res);
292
293
144
            block.replace_by_position(result, std::move(col_res));
294
195
        } else if (!left_is_const && right_is_const) {
295
195
            auto col_res = ColumnUInt8::create();
296
297
195
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
195
            vec_res.resize(col_left->size());
299
195
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
195
                              typename PrimitiveTypeTraits<PT>::CppType,
301
195
                              Op<PT>>::vector_constant(col_left->get_data(),
302
195
                                                       col_right->get_element(0), vec_res);
303
304
195
            block.replace_by_position(result, std::move(col_res));
305
195
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
339
        return Status::OK();
318
339
    }
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
274
109
                            const ColumnPtr& col_right_ptr) const {
275
109
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
109
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
109
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
109
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
109
        DCHECK(!(left_is_const && right_is_const));
282
283
111
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
111
        } else if (!left_is_const && right_is_const) {
295
111
            auto col_res = ColumnUInt8::create();
296
297
111
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
111
            vec_res.resize(col_left->size());
299
111
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
111
                              typename PrimitiveTypeTraits<PT>::CppType,
301
111
                              Op<PT>>::vector_constant(col_left->get_data(),
302
111
                                                       col_right->get_element(0), vec_res);
303
304
111
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
109
        return Status::OK();
318
109
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE25EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
5.91k
                            const ColumnPtr& col_right_ptr) const {
275
5.91k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
5.91k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
5.91k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
5.91k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
5.91k
        DCHECK(!(left_is_const && right_is_const));
282
283
5.91k
        if (!left_is_const && !right_is_const) {
284
424
            auto col_res = ColumnUInt8::create();
285
286
424
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
424
            vec_res.resize(col_left->get_data().size());
288
424
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
424
                              typename PrimitiveTypeTraits<PT>::CppType,
290
424
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
424
                                                     vec_res);
292
293
424
            block.replace_by_position(result, std::move(col_res));
294
5.49k
        } else if (!left_is_const && right_is_const) {
295
5.49k
            auto col_res = ColumnUInt8::create();
296
297
5.49k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
5.49k
            vec_res.resize(col_left->size());
299
5.49k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
5.49k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
5.49k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
5.49k
                                                       col_right->get_element(0), vec_res);
303
304
5.49k
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
5.91k
        return Status::OK();
318
5.91k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE26EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
267
                            const ColumnPtr& col_right_ptr) const {
275
267
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
267
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
267
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
267
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
267
        DCHECK(!(left_is_const && right_is_const));
282
283
267
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
267
        } else if (!left_is_const && right_is_const) {
295
267
            auto col_res = ColumnUInt8::create();
296
297
267
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
267
            vec_res.resize(col_left->size());
299
267
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
267
                              typename PrimitiveTypeTraits<PT>::CppType,
301
267
                              Op<PT>>::vector_constant(col_left->get_data(),
302
267
                                                       col_right->get_element(0), vec_res);
303
304
267
            block.replace_by_position(result, std::move(col_res));
305
267
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
267
        return Status::OK();
318
267
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE42EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
3
                            const ColumnPtr& col_right_ptr) const {
275
3
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
3
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
3
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
3
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
3
        DCHECK(!(left_is_const && right_is_const));
282
283
3
        if (!left_is_const && !right_is_const) {
284
3
            auto col_res = ColumnUInt8::create();
285
286
3
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
3
            vec_res.resize(col_left->get_data().size());
288
3
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
3
                              typename PrimitiveTypeTraits<PT>::CppType,
290
3
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
3
                                                     vec_res);
292
293
3
            block.replace_by_position(result, std::move(col_res));
294
3
        } else if (!left_is_const && right_is_const) {
295
0
            auto col_res = ColumnUInt8::create();
296
297
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
0
            vec_res.resize(col_left->size());
299
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
0
                              typename PrimitiveTypeTraits<PT>::CppType,
301
0
                              Op<PT>>::vector_constant(col_left->get_data(),
302
0
                                                       col_right->get_element(0), vec_res);
303
304
0
            block.replace_by_position(result, std::move(col_res));
305
0
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
3
        return Status::OK();
318
3
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE3EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
150
                            const ColumnPtr& col_right_ptr) const {
275
150
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
150
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
150
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
150
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
150
        DCHECK(!(left_is_const && right_is_const));
282
283
150
        if (!left_is_const && !right_is_const) {
284
1
            auto col_res = ColumnUInt8::create();
285
286
1
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
1
            vec_res.resize(col_left->get_data().size());
288
1
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
1
                              typename PrimitiveTypeTraits<PT>::CppType,
290
1
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
1
                                                     vec_res);
292
293
1
            block.replace_by_position(result, std::move(col_res));
294
149
        } else if (!left_is_const && right_is_const) {
295
149
            auto col_res = ColumnUInt8::create();
296
297
149
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
149
            vec_res.resize(col_left->size());
299
149
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
149
                              typename PrimitiveTypeTraits<PT>::CppType,
301
149
                              Op<PT>>::vector_constant(col_left->get_data(),
302
149
                                                       col_right->get_element(0), vec_res);
303
304
149
            block.replace_by_position(result, std::move(col_res));
305
149
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
150
        return Status::OK();
318
150
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE4EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
213
                            const ColumnPtr& col_right_ptr) const {
275
213
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
213
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
213
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
213
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
213
        DCHECK(!(left_is_const && right_is_const));
282
283
213
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
214
        } else if (!left_is_const && right_is_const) {
295
214
            auto col_res = ColumnUInt8::create();
296
297
214
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
214
            vec_res.resize(col_left->size());
299
214
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
214
                              typename PrimitiveTypeTraits<PT>::CppType,
301
214
                              Op<PT>>::vector_constant(col_left->get_data(),
302
214
                                                       col_right->get_element(0), vec_res);
303
304
214
            block.replace_by_position(result, std::move(col_res));
305
18.4E
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
213
        return Status::OK();
318
213
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE5EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
20.9k
                            const ColumnPtr& col_right_ptr) const {
275
20.9k
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
20.9k
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
20.9k
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
20.9k
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
20.9k
        DCHECK(!(left_is_const && right_is_const));
282
283
20.9k
        if (!left_is_const && !right_is_const) {
284
47
            auto col_res = ColumnUInt8::create();
285
286
47
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
47
            vec_res.resize(col_left->get_data().size());
288
47
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
47
                              typename PrimitiveTypeTraits<PT>::CppType,
290
47
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
47
                                                     vec_res);
292
293
47
            block.replace_by_position(result, std::move(col_res));
294
20.9k
        } else if (!left_is_const && right_is_const) {
295
20.9k
            auto col_res = ColumnUInt8::create();
296
297
20.9k
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
20.9k
            vec_res.resize(col_left->size());
299
20.9k
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
20.9k
                              typename PrimitiveTypeTraits<PT>::CppType,
301
20.9k
                              Op<PT>>::vector_constant(col_left->get_data(),
302
20.9k
                                                       col_right->get_element(0), vec_res);
303
304
20.9k
            block.replace_by_position(result, std::move(col_res));
305
20.9k
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
20.9k
        return Status::OK();
318
20.9k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE6EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
449
                            const ColumnPtr& col_right_ptr) const {
275
449
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
449
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
449
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
449
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
449
        DCHECK(!(left_is_const && right_is_const));
282
283
449
        if (!left_is_const && !right_is_const) {
284
77
            auto col_res = ColumnUInt8::create();
285
286
77
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
77
            vec_res.resize(col_left->get_data().size());
288
77
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
77
                              typename PrimitiveTypeTraits<PT>::CppType,
290
77
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
77
                                                     vec_res);
292
293
77
            block.replace_by_position(result, std::move(col_res));
294
372
        } else if (!left_is_const && right_is_const) {
295
372
            auto col_res = ColumnUInt8::create();
296
297
372
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
372
            vec_res.resize(col_left->size());
299
372
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
372
                              typename PrimitiveTypeTraits<PT>::CppType,
301
372
                              Op<PT>>::vector_constant(col_left->get_data(),
302
372
                                                       col_right->get_element(0), vec_res);
303
304
372
            block.replace_by_position(result, std::move(col_res));
305
372
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
449
        return Status::OK();
318
449
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE7EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
31
                            const ColumnPtr& col_right_ptr) const {
275
31
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
31
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
31
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
31
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
31
        DCHECK(!(left_is_const && right_is_const));
282
283
31
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
31
        } else if (!left_is_const && right_is_const) {
295
31
            auto col_res = ColumnUInt8::create();
296
297
31
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
31
            vec_res.resize(col_left->size());
299
31
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
31
                              typename PrimitiveTypeTraits<PT>::CppType,
301
31
                              Op<PT>>::vector_constant(col_left->get_data(),
302
31
                                                       col_right->get_element(0), vec_res);
303
304
31
            block.replace_by_position(result, std::move(col_res));
305
31
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
31
        return Status::OK();
318
31
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE36EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
10
                            const ColumnPtr& col_right_ptr) const {
275
10
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
10
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
10
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
10
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
10
        DCHECK(!(left_is_const && right_is_const));
282
283
10
        if (!left_is_const && !right_is_const) {
284
0
            auto col_res = ColumnUInt8::create();
285
286
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
0
            vec_res.resize(col_left->get_data().size());
288
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
0
                              typename PrimitiveTypeTraits<PT>::CppType,
290
0
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
0
                                                     vec_res);
292
293
0
            block.replace_by_position(result, std::move(col_res));
294
10
        } else if (!left_is_const && right_is_const) {
295
10
            auto col_res = ColumnUInt8::create();
296
297
10
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
10
            vec_res.resize(col_left->size());
299
10
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
10
                              typename PrimitiveTypeTraits<PT>::CppType,
301
10
                              Op<PT>>::vector_constant(col_left->get_data(),
302
10
                                                       col_right->get_element(0), vec_res);
303
304
10
            block.replace_by_position(result, std::move(col_res));
305
10
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
10
        return Status::OK();
318
10
    }
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
274
96
                            const ColumnPtr& col_right_ptr) const {
275
96
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
96
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
96
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
96
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
96
        DCHECK(!(left_is_const && right_is_const));
282
283
96
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
76
        } else if (!left_is_const && right_is_const) {
295
76
            auto col_res = ColumnUInt8::create();
296
297
76
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
76
            vec_res.resize(col_left->size());
299
76
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
76
                              typename PrimitiveTypeTraits<PT>::CppType,
301
76
                              Op<PT>>::vector_constant(col_left->get_data(),
302
76
                                                       col_right->get_element(0), vec_res);
303
304
76
            block.replace_by_position(result, std::move(col_res));
305
76
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
96
        return Status::OK();
318
96
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE9EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
Line
Count
Source
274
162
                            const ColumnPtr& col_right_ptr) const {
275
162
        auto [col_left_untype, left_is_const] = unpack_if_const(col_left_ptr);
276
162
        auto [col_right_untyped, right_is_const] = unpack_if_const(col_right_ptr);
277
278
162
        const auto* col_left = assert_cast<const ColumnVector<PT>*>(col_left_untype.get());
279
162
        const auto* col_right = assert_cast<const ColumnVector<PT>*>(col_right_untyped.get());
280
281
162
        DCHECK(!(left_is_const && right_is_const));
282
283
162
        if (!left_is_const && !right_is_const) {
284
20
            auto col_res = ColumnUInt8::create();
285
286
20
            ColumnUInt8::Container& vec_res = col_res->get_data();
287
20
            vec_res.resize(col_left->get_data().size());
288
20
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
289
20
                              typename PrimitiveTypeTraits<PT>::CppType,
290
20
                              Op<PT>>::vector_vector(col_left->get_data(), col_right->get_data(),
291
20
                                                     vec_res);
292
293
20
            block.replace_by_position(result, std::move(col_res));
294
142
        } else if (!left_is_const && right_is_const) {
295
142
            auto col_res = ColumnUInt8::create();
296
297
142
            ColumnUInt8::Container& vec_res = col_res->get_data();
298
142
            vec_res.resize(col_left->size());
299
142
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
300
142
                              typename PrimitiveTypeTraits<PT>::CppType,
301
142
                              Op<PT>>::vector_constant(col_left->get_data(),
302
142
                                                       col_right->get_element(0), vec_res);
303
304
142
            block.replace_by_position(result, std::move(col_res));
305
142
        } else if (left_is_const && !right_is_const) {
306
0
            auto col_res = ColumnUInt8::create();
307
308
0
            ColumnUInt8::Container& vec_res = col_res->get_data();
309
0
            vec_res.resize(col_right->size());
310
0
            NumComparisonImpl<typename PrimitiveTypeTraits<PT>::CppType,
311
0
                              typename PrimitiveTypeTraits<PT>::CppType,
312
0
                              Op<PT>>::constant_vector(col_left->get_element(0),
313
0
                                                       col_right->get_data(), vec_res);
314
315
0
            block.replace_by_position(result, std::move(col_res));
316
0
        }
317
162
        return Status::OK();
318
162
    }
Unexecuted instantiation: _ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE16execute_num_typeILNS_13PrimitiveTypeE27EEENS_6StatusERNS_5BlockEjRKNS_3COWINS_7IColumnEE13immutable_ptrISA_EESF_
319
320
    Status execute_decimal(Block& block, uint32_t result, const ColumnWithTypeAndName& col_left,
321
12.4k
                           const ColumnWithTypeAndName& col_right) const {
322
12.4k
        auto call = [&](const auto& type) -> bool {
323
12.4k
            using DispatchType = std::decay_t<decltype(type)>;
324
12.4k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
12.4k
                    block, result, col_left, col_right);
326
12.4k
            return true;
327
12.4k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
219
        auto call = [&](const auto& type) -> bool {
323
219
            using DispatchType = std::decay_t<decltype(type)>;
324
219
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
219
                    block, result, col_left, col_right);
326
219
            return true;
327
219
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
256
        auto call = [&](const auto& type) -> bool {
323
256
            using DispatchType = std::decay_t<decltype(type)>;
324
256
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
256
                    block, result, col_left, col_right);
326
256
            return true;
327
256
        };
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
322
1.35k
        auto call = [&](const auto& type) -> bool {
323
1.35k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.35k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.35k
                    block, result, col_left, col_right);
326
1.35k
            return true;
327
1.35k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
30
        auto call = [&](const auto& type) -> bool {
323
30
            using DispatchType = std::decay_t<decltype(type)>;
324
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
30
                    block, result, col_left, col_right);
326
30
            return true;
327
30
        };
Unexecuted instantiation: _ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
61
        auto call = [&](const auto& type) -> bool {
323
61
            using DispatchType = std::decay_t<decltype(type)>;
324
61
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
61
                    block, result, col_left, col_right);
326
61
            return true;
327
61
        };
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
322
324
        auto call = [&](const auto& type) -> bool {
323
324
            using DispatchType = std::decay_t<decltype(type)>;
324
324
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
324
                    block, result, col_left, col_right);
326
324
            return true;
327
324
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
30
        auto call = [&](const auto& type) -> bool {
323
30
            using DispatchType = std::decay_t<decltype(type)>;
324
30
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
30
                    block, result, col_left, col_right);
326
30
            return true;
327
30
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
22
        auto call = [&](const auto& type) -> bool {
323
22
            using DispatchType = std::decay_t<decltype(type)>;
324
22
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
22
                    block, result, col_left, col_right);
326
22
            return true;
327
22
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
4.11k
        auto call = [&](const auto& type) -> bool {
323
4.11k
            using DispatchType = std::decay_t<decltype(type)>;
324
4.11k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
4.11k
                    block, result, col_left, col_right);
326
4.11k
            return true;
327
4.11k
        };
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
322
1.66k
        auto call = [&](const auto& type) -> bool {
323
1.66k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.66k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.66k
                    block, result, col_left, col_right);
326
1.66k
            return true;
327
1.66k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
2
        auto call = [&](const auto& type) -> bool {
323
2
            using DispatchType = std::decay_t<decltype(type)>;
324
2
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
2
                    block, result, col_left, col_right);
326
2
            return true;
327
2
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
3
        auto call = [&](const auto& type) -> bool {
323
3
            using DispatchType = std::decay_t<decltype(type)>;
324
3
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
3
                    block, result, col_left, col_right);
326
3
            return true;
327
3
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
248
        auto call = [&](const auto& type) -> bool {
323
248
            using DispatchType = std::decay_t<decltype(type)>;
324
248
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
248
                    block, result, col_left, col_right);
326
248
            return true;
327
248
        };
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
322
38
        auto call = [&](const auto& type) -> bool {
323
38
            using DispatchType = std::decay_t<decltype(type)>;
324
38
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
38
                    block, result, col_left, col_right);
326
38
            return true;
327
38
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
27
        auto call = [&](const auto& type) -> bool {
323
27
            using DispatchType = std::decay_t<decltype(type)>;
324
27
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
27
                    block, result, col_left, col_right);
326
27
            return true;
327
27
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
190
        auto call = [&](const auto& type) -> bool {
323
190
            using DispatchType = std::decay_t<decltype(type)>;
324
190
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
190
                    block, result, col_left, col_right);
326
190
            return true;
327
190
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
232
        auto call = [&](const auto& type) -> bool {
323
232
            using DispatchType = std::decay_t<decltype(type)>;
324
232
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
232
                    block, result, col_left, col_right);
326
232
            return true;
327
232
        };
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
322
633
        auto call = [&](const auto& type) -> bool {
323
633
            using DispatchType = std::decay_t<decltype(type)>;
324
633
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
633
                    block, result, col_left, col_right);
326
633
            return true;
327
633
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
1
        auto call = [&](const auto& type) -> bool {
323
1
            using DispatchType = std::decay_t<decltype(type)>;
324
1
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1
                    block, result, col_left, col_right);
326
1
            return true;
327
1
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSB_
Line
Count
Source
322
10
        auto call = [&](const auto& type) -> bool {
323
10
            using DispatchType = std::decay_t<decltype(type)>;
324
10
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
10
                    block, result, col_left, col_right);
326
10
            return true;
327
10
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSB_
Line
Count
Source
322
2.19k
        auto call = [&](const auto& type) -> bool {
323
2.19k
            using DispatchType = std::decay_t<decltype(type)>;
324
2.19k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
2.19k
                    block, result, col_left, col_right);
326
2.19k
            return true;
327
2.19k
        };
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
322
730
        auto call = [&](const auto& type) -> bool {
323
730
            using DispatchType = std::decay_t<decltype(type)>;
324
730
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
730
                    block, result, col_left, col_right);
326
730
            return true;
327
730
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_ENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSB_
Line
Count
Source
322
22
        auto call = [&](const auto& type) -> bool {
323
22
            using DispatchType = std::decay_t<decltype(type)>;
324
22
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
22
                    block, result, col_left, col_right);
326
22
            return true;
327
22
        };
328
329
12.4k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
12.4k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
12.4k
        return Status::OK();
340
12.4k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
1.86k
                           const ColumnWithTypeAndName& col_right) const {
322
1.86k
        auto call = [&](const auto& type) -> bool {
323
1.86k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.86k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.86k
                    block, result, col_left, col_right);
326
1.86k
            return true;
327
1.86k
        };
328
329
1.86k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
1.86k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
1.86k
        return Status::OK();
340
1.86k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
415
                           const ColumnWithTypeAndName& col_right) const {
322
415
        auto call = [&](const auto& type) -> bool {
323
415
            using DispatchType = std::decay_t<decltype(type)>;
324
415
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
415
                    block, result, col_left, col_right);
326
415
            return true;
327
415
        };
328
329
415
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
415
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
415
        return Status::OK();
340
415
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
5.80k
                           const ColumnWithTypeAndName& col_right) const {
322
5.80k
        auto call = [&](const auto& type) -> bool {
323
5.80k
            using DispatchType = std::decay_t<decltype(type)>;
324
5.80k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
5.80k
                    block, result, col_left, col_right);
326
5.80k
            return true;
327
5.80k
        };
328
329
5.80k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
5.80k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
5.80k
        return Status::OK();
340
5.80k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
316
                           const ColumnWithTypeAndName& col_right) const {
322
316
        auto call = [&](const auto& type) -> bool {
323
316
            using DispatchType = std::decay_t<decltype(type)>;
324
316
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
316
                    block, result, col_left, col_right);
326
316
            return true;
327
316
        };
328
329
316
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
316
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
316
        return Status::OK();
340
316
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
1.05k
                           const ColumnWithTypeAndName& col_right) const {
322
1.05k
        auto call = [&](const auto& type) -> bool {
323
1.05k
            using DispatchType = std::decay_t<decltype(type)>;
324
1.05k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
1.05k
                    block, result, col_left, col_right);
326
1.05k
            return true;
327
1.05k
        };
328
329
1.05k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
1.05k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
1.05k
        return Status::OK();
340
1.05k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_decimalERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
321
2.95k
                           const ColumnWithTypeAndName& col_right) const {
322
2.95k
        auto call = [&](const auto& type) -> bool {
323
2.95k
            using DispatchType = std::decay_t<decltype(type)>;
324
2.95k
            DecimalComparison<DispatchType::PType, DispatchType::PType, Op, false>(
325
2.95k
                    block, result, col_left, col_right);
326
2.95k
            return true;
327
2.95k
        };
328
329
2.95k
        if (col_left.type->get_primitive_type() != col_right.type->get_primitive_type()) {
330
0
            return Status::RuntimeError(
331
0
                    "type of left column {} is not equal to type of right column {}",
332
0
                    col_left.type->get_name(), col_right.type->get_name());
333
0
        }
334
335
2.95k
        if (!dispatch_switch_decimal(col_right.type->get_primitive_type(), call)) {
336
0
            return Status::RuntimeError("Wrong call for {} with {} and {}", get_name(),
337
0
                                        col_left.type->get_name(), col_right.type->get_name());
338
0
        }
339
2.95k
        return Status::OK();
340
2.95k
    }
341
342
    Status execute_string(Block& block, uint32_t result, const IColumn* c0,
343
23.9k
                          const IColumn* c1) const {
344
23.9k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
23.9k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
23.9k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
23.9k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
23.9k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
23.9k
        DCHECK(!(c0_const && c1_const));
353
23.9k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
23.9k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
23.9k
        ColumnString::Offset c0_const_size = 0;
356
23.9k
        ColumnString::Offset c1_const_size = 0;
357
358
23.9k
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
23.9k
        if (c1_const) {
372
23.1k
            const ColumnString* c1_const_string =
373
23.1k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
23.1k
            if (c1_const_string) {
376
23.1k
                c1_const_chars = &c1_const_string->get_chars();
377
23.1k
                c1_const_size = c1_const_string->get_offsets()[0];
378
18.4E
            } else {
379
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
18.4E
                                            c1->get_name(), name);
381
18.4E
            }
382
23.1k
        }
383
384
23.9k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
23.9k
        auto c_res = ColumnUInt8::create();
387
23.9k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
23.9k
        vec_res.resize(c0->size());
389
390
23.9k
        if (c0_string && c1_string) {
391
774
            StringImpl::string_vector_string_vector(
392
774
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
774
                    c1_string->get_offsets(), vec_res);
394
23.1k
        } else if (c0_string && c1_const) {
395
23.1k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
23.1k
                                               *c1_const_chars, c1_const_size, vec_res);
397
18.4E
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
18.4E
        } else {
402
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
18.4E
                                        c0->get_name(), c1->get_name(), name);
404
18.4E
        }
405
23.9k
        block.replace_by_position(result, std::move(c_res));
406
23.9k
        return Status::OK();
407
23.9k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
21.4k
                          const IColumn* c1) const {
344
21.4k
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
21.4k
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
21.4k
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
21.4k
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
21.4k
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
21.4k
        DCHECK(!(c0_const && c1_const));
353
21.4k
        const ColumnString::Chars* c0_const_chars = nullptr;
354
21.4k
        const ColumnString::Chars* c1_const_chars = nullptr;
355
21.4k
        ColumnString::Offset c0_const_size = 0;
356
21.4k
        ColumnString::Offset c1_const_size = 0;
357
358
21.4k
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
21.4k
        if (c1_const) {
372
21.0k
            const ColumnString* c1_const_string =
373
21.0k
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
21.0k
            if (c1_const_string) {
376
21.0k
                c1_const_chars = &c1_const_string->get_chars();
377
21.0k
                c1_const_size = c1_const_string->get_offsets()[0];
378
18.4E
            } else {
379
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
18.4E
                                            c1->get_name(), name);
381
18.4E
            }
382
21.0k
        }
383
384
21.4k
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
21.4k
        auto c_res = ColumnUInt8::create();
387
21.4k
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
21.4k
        vec_res.resize(c0->size());
389
390
21.4k
        if (c0_string && c1_string) {
391
412
            StringImpl::string_vector_string_vector(
392
412
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
412
                    c1_string->get_offsets(), vec_res);
394
21.0k
        } else if (c0_string && c1_const) {
395
21.0k
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
21.0k
                                               *c1_const_chars, c1_const_size, vec_res);
397
18.4E
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
18.4E
        } else {
402
18.4E
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
18.4E
                                        c0->get_name(), c1->get_name(), name);
404
18.4E
        }
405
21.4k
        block.replace_by_position(result, std::move(c_res));
406
21.4k
        return Status::OK();
407
21.4k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
747
                          const IColumn* c1) const {
344
747
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
747
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
747
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
747
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
747
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
747
        DCHECK(!(c0_const && c1_const));
353
747
        const ColumnString::Chars* c0_const_chars = nullptr;
354
747
        const ColumnString::Chars* c1_const_chars = nullptr;
355
747
        ColumnString::Offset c0_const_size = 0;
356
747
        ColumnString::Offset c1_const_size = 0;
357
358
747
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
747
        if (c1_const) {
372
746
            const ColumnString* c1_const_string =
373
746
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
746
            if (c1_const_string) {
376
746
                c1_const_chars = &c1_const_string->get_chars();
377
746
                c1_const_size = c1_const_string->get_offsets()[0];
378
746
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
746
        }
383
384
747
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
747
        auto c_res = ColumnUInt8::create();
387
747
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
747
        vec_res.resize(c0->size());
389
390
747
        if (c0_string && c1_string) {
391
1
            StringImpl::string_vector_string_vector(
392
1
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
1
                    c1_string->get_offsets(), vec_res);
394
746
        } else if (c0_string && c1_const) {
395
746
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
746
                                               *c1_const_chars, c1_const_size, vec_res);
397
746
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
747
        block.replace_by_position(result, std::move(c_res));
406
747
        return Status::OK();
407
747
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
198
                          const IColumn* c1) const {
344
198
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
198
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
198
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
198
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
198
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
198
        DCHECK(!(c0_const && c1_const));
353
198
        const ColumnString::Chars* c0_const_chars = nullptr;
354
198
        const ColumnString::Chars* c1_const_chars = nullptr;
355
198
        ColumnString::Offset c0_const_size = 0;
356
198
        ColumnString::Offset c1_const_size = 0;
357
358
198
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
198
        if (c1_const) {
372
195
            const ColumnString* c1_const_string =
373
195
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
196
            if (c1_const_string) {
376
196
                c1_const_chars = &c1_const_string->get_chars();
377
196
                c1_const_size = c1_const_string->get_offsets()[0];
378
18.4E
            } else {
379
18.4E
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
18.4E
                                            c1->get_name(), name);
381
18.4E
            }
382
195
        }
383
384
199
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
199
        auto c_res = ColumnUInt8::create();
387
199
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
199
        vec_res.resize(c0->size());
389
390
199
        if (c0_string && c1_string) {
391
2
            StringImpl::string_vector_string_vector(
392
2
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
2
                    c1_string->get_offsets(), vec_res);
394
197
        } else if (c0_string && c1_const) {
395
196
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
196
                                               *c1_const_chars, c1_const_size, vec_res);
397
196
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
1
        } else {
402
1
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
1
                                        c0->get_name(), c1->get_name(), name);
404
1
        }
405
198
        block.replace_by_position(result, std::move(c_res));
406
198
        return Status::OK();
407
199
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
510
                          const IColumn* c1) const {
344
510
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
510
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
510
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
510
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
510
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
510
        DCHECK(!(c0_const && c1_const));
353
510
        const ColumnString::Chars* c0_const_chars = nullptr;
354
510
        const ColumnString::Chars* c1_const_chars = nullptr;
355
510
        ColumnString::Offset c0_const_size = 0;
356
510
        ColumnString::Offset c1_const_size = 0;
357
358
510
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
510
        if (c1_const) {
372
463
            const ColumnString* c1_const_string =
373
463
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
463
            if (c1_const_string) {
376
463
                c1_const_chars = &c1_const_string->get_chars();
377
463
                c1_const_size = c1_const_string->get_offsets()[0];
378
463
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
463
        }
383
384
510
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
510
        auto c_res = ColumnUInt8::create();
387
510
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
510
        vec_res.resize(c0->size());
389
390
510
        if (c0_string && c1_string) {
391
46
            StringImpl::string_vector_string_vector(
392
46
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
46
                    c1_string->get_offsets(), vec_res);
394
464
        } else if (c0_string && c1_const) {
395
464
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
464
                                               *c1_const_chars, c1_const_size, vec_res);
397
464
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
510
        block.replace_by_position(result, std::move(c_res));
406
510
        return Status::OK();
407
510
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
528
                          const IColumn* c1) const {
344
528
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
528
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
528
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
528
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
528
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
528
        DCHECK(!(c0_const && c1_const));
353
528
        const ColumnString::Chars* c0_const_chars = nullptr;
354
528
        const ColumnString::Chars* c1_const_chars = nullptr;
355
528
        ColumnString::Offset c0_const_size = 0;
356
528
        ColumnString::Offset c1_const_size = 0;
357
358
528
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
528
        if (c1_const) {
372
215
            const ColumnString* c1_const_string =
373
215
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
215
            if (c1_const_string) {
376
215
                c1_const_chars = &c1_const_string->get_chars();
377
215
                c1_const_size = c1_const_string->get_offsets()[0];
378
215
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
215
        }
383
384
528
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
528
        auto c_res = ColumnUInt8::create();
387
528
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
528
        vec_res.resize(c0->size());
389
390
528
        if (c0_string && c1_string) {
391
313
            StringImpl::string_vector_string_vector(
392
313
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
313
                    c1_string->get_offsets(), vec_res);
394
313
        } else if (c0_string && c1_const) {
395
215
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
215
                                               *c1_const_chars, c1_const_size, vec_res);
397
215
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
528
        block.replace_by_position(result, std::move(c_res));
406
528
        return Status::OK();
407
528
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE14execute_stringERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
343
508
                          const IColumn* c1) const {
344
508
        const ColumnString* c0_string = check_and_get_column<ColumnString>(c0);
345
508
        const ColumnString* c1_string = check_and_get_column<ColumnString>(c1);
346
508
        const ColumnConst* c0_const = check_and_get_column_const_string_or_fixedstring(c0);
347
508
        const ColumnConst* c1_const = check_and_get_column_const_string_or_fixedstring(c1);
348
508
        if (!((c0_string || c0_const) && (c1_string || c1_const))) {
349
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
350
0
                                        c0->get_name(), c1->get_name(), name);
351
0
        }
352
508
        DCHECK(!(c0_const && c1_const));
353
508
        const ColumnString::Chars* c0_const_chars = nullptr;
354
508
        const ColumnString::Chars* c1_const_chars = nullptr;
355
508
        ColumnString::Offset c0_const_size = 0;
356
508
        ColumnString::Offset c1_const_size = 0;
357
358
508
        if (c0_const) {
359
0
            const ColumnString* c0_const_string =
360
0
                    check_and_get_column<ColumnString>(&c0_const->get_data_column());
361
362
0
            if (c0_const_string) {
363
0
                c0_const_chars = &c0_const_string->get_chars();
364
0
                c0_const_size = c0_const_string->get_offsets()[0];
365
0
            } else {
366
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
367
0
                                            c0->get_name(), name);
368
0
            }
369
0
        }
370
371
508
        if (c1_const) {
372
508
            const ColumnString* c1_const_string =
373
508
                    check_and_get_column<ColumnString>(&c1_const->get_data_column());
374
375
508
            if (c1_const_string) {
376
508
                c1_const_chars = &c1_const_string->get_chars();
377
508
                c1_const_size = c1_const_string->get_offsets()[0];
378
508
            } else {
379
0
                return Status::NotSupported("Illegal columns {}, of argument of function {}",
380
0
                                            c1->get_name(), name);
381
0
            }
382
508
        }
383
384
508
        using StringImpl = StringComparisonImpl<Op<TYPE_INT>>;
385
386
508
        auto c_res = ColumnUInt8::create();
387
508
        ColumnUInt8::Container& vec_res = c_res->get_data();
388
508
        vec_res.resize(c0->size());
389
390
508
        if (c0_string && c1_string) {
391
0
            StringImpl::string_vector_string_vector(
392
0
                    c0_string->get_chars(), c0_string->get_offsets(), c1_string->get_chars(),
393
0
                    c1_string->get_offsets(), vec_res);
394
508
        } else if (c0_string && c1_const) {
395
508
            StringImpl::string_vector_constant(c0_string->get_chars(), c0_string->get_offsets(),
396
508
                                               *c1_const_chars, c1_const_size, vec_res);
397
508
        } else if (c0_const && c1_string) {
398
0
            StringImpl::constant_string_vector(*c0_const_chars, c0_const_size,
399
0
                                               c1_string->get_chars(), c1_string->get_offsets(),
400
0
                                               vec_res);
401
0
        } else {
402
0
            return Status::NotSupported("Illegal columns {}, {} of argument of function {}",
403
0
                                        c0->get_name(), c1->get_name(), name);
404
0
        }
405
508
        block.replace_by_position(result, std::move(c_res));
406
508
        return Status::OK();
407
508
    }
408
409
    void execute_generic_identical_types(Block& block, uint32_t result, const IColumn* c0,
410
110
                                         const IColumn* c1) const {
411
110
        bool c0_const = is_column_const(*c0);
412
110
        bool c1_const = is_column_const(*c1);
413
414
110
        DCHECK(!(c0_const && c1_const));
415
416
110
        auto c_res = ColumnUInt8::create();
417
110
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
110
        vec_res.resize(c0->size());
419
420
110
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
110
        } else if (c1_const) {
423
101
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
101
        } else {
425
9
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
9
        }
427
428
110
        block.replace_by_position(result, std::move(c_res));
429
110
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
410
17
                                         const IColumn* c1) const {
411
17
        bool c0_const = is_column_const(*c0);
412
17
        bool c1_const = is_column_const(*c1);
413
414
17
        DCHECK(!(c0_const && c1_const));
415
416
17
        auto c_res = ColumnUInt8::create();
417
17
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
17
        vec_res.resize(c0->size());
419
420
17
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
17
        } else if (c1_const) {
423
13
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
13
        } else {
425
4
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
4
        }
427
428
17
        block.replace_by_position(result, std::move(c_res));
429
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
410
8
                                         const IColumn* c1) const {
411
8
        bool c0_const = is_column_const(*c0);
412
8
        bool c1_const = is_column_const(*c1);
413
414
8
        DCHECK(!(c0_const && c1_const));
415
416
8
        auto c_res = ColumnUInt8::create();
417
8
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
8
        vec_res.resize(c0->size());
419
420
8
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
8
        } else if (c1_const) {
423
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
8
        } else {
425
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
0
        }
427
428
8
        block.replace_by_position(result, std::move(c_res));
429
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
410
9
                                         const IColumn* c1) const {
411
9
        bool c0_const = is_column_const(*c0);
412
9
        bool c1_const = is_column_const(*c1);
413
414
9
        DCHECK(!(c0_const && c1_const));
415
416
9
        auto c_res = ColumnUInt8::create();
417
9
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
9
        vec_res.resize(c0->size());
419
420
9
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
9
        } else if (c1_const) {
423
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
8
        } else {
425
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
1
        }
427
428
9
        block.replace_by_position(result, std::move(c_res));
429
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
410
31
                                         const IColumn* c1) const {
411
31
        bool c0_const = is_column_const(*c0);
412
31
        bool c1_const = is_column_const(*c1);
413
414
31
        DCHECK(!(c0_const && c1_const));
415
416
31
        auto c_res = ColumnUInt8::create();
417
31
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
31
        vec_res.resize(c0->size());
419
420
31
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
31
        } else if (c1_const) {
423
30
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
30
        } else {
425
1
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
1
        }
427
428
31
        block.replace_by_position(result, std::move(c_res));
429
31
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
410
11
                                         const IColumn* c1) const {
411
11
        bool c0_const = is_column_const(*c0);
412
11
        bool c1_const = is_column_const(*c1);
413
414
11
        DCHECK(!(c0_const && c1_const));
415
416
11
        auto c_res = ColumnUInt8::create();
417
11
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
11
        vec_res.resize(c0->size());
419
420
11
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
11
        } else if (c1_const) {
423
8
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
8
        } else {
425
3
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
3
        }
427
428
11
        block.replace_by_position(result, std::move(c_res));
429
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE31execute_generic_identical_typesERNS_5BlockEjPKNS_7IColumnES8_
Line
Count
Source
410
34
                                         const IColumn* c1) const {
411
34
        bool c0_const = is_column_const(*c0);
412
34
        bool c1_const = is_column_const(*c1);
413
414
34
        DCHECK(!(c0_const && c1_const));
415
416
34
        auto c_res = ColumnUInt8::create();
417
34
        ColumnUInt8::Container& vec_res = c_res->get_data();
418
34
        vec_res.resize(c0->size());
419
420
34
        if (c0_const) {
421
0
            GenericComparisonImpl<Op<TYPE_INT>>::constant_vector(*c0, *c1, vec_res);
422
34
        } else if (c1_const) {
423
34
            GenericComparisonImpl<Op<TYPE_INT>>::vector_constant(*c0, *c1, vec_res);
424
34
        } else {
425
0
            GenericComparisonImpl<Op<TYPE_INT>>::vector_vector(*c0, *c1, vec_res);
426
0
        }
427
428
34
        block.replace_by_position(result, std::move(c_res));
429
34
    }
430
431
    Status execute_generic(Block& block, uint32_t result, const ColumnWithTypeAndName& c0,
432
110
                           const ColumnWithTypeAndName& c1) const {
433
110
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
110
        return Status::OK();
435
110
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
432
17
                           const ColumnWithTypeAndName& c1) const {
433
17
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
17
        return Status::OK();
435
17
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
432
8
                           const ColumnWithTypeAndName& c1) const {
433
8
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
8
        return Status::OK();
435
8
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
432
9
                           const ColumnWithTypeAndName& c1) const {
433
9
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
9
        return Status::OK();
435
9
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
432
31
                           const ColumnWithTypeAndName& c1) const {
433
31
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
31
        return Status::OK();
435
31
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
432
11
                           const ColumnWithTypeAndName& c1) const {
433
11
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
11
        return Status::OK();
435
11
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE15execute_genericERNS_5BlockEjRKNS_21ColumnWithTypeAndNameES8_
Line
Count
Source
432
34
                           const ColumnWithTypeAndName& c1) const {
433
34
        execute_generic_identical_types(block, result, c0.column.get(), c1.column.get());
434
34
        return Status::OK();
435
34
    }
436
437
public:
438
220
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
63
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
37
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE8get_nameB5cxx11Ev
Line
Count
Source
438
39
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
79
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE8get_nameB5cxx11Ev
Line
Count
Source
438
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE8get_nameB5cxx11Ev
Line
Count
Source
438
1
    String get_name() const override { return name; }
439
440
500k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
424k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
1.34k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23get_number_of_argumentsEv
Line
Count
Source
440
6.49k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
31.9k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23get_number_of_argumentsEv
Line
Count
Source
440
3.31k
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23get_number_of_argumentsEv
Line
Count
Source
440
32.8k
    size_t get_number_of_arguments() const override { return 2; }
441
442
    /// Get result types by argument types. If the function does not apply to these arguments, throw an exception.
443
500k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
500k
        return std::make_shared<DataTypeUInt8>();
445
500k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
424k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
424k
        return std::make_shared<DataTypeUInt8>();
445
424k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
1.34k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
1.34k
        return std::make_shared<DataTypeUInt8>();
445
1.34k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
6.49k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
6.49k
        return std::make_shared<DataTypeUInt8>();
445
6.49k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
31.9k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
31.9k
        return std::make_shared<DataTypeUInt8>();
445
31.9k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
3.31k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
3.31k
        return std::make_shared<DataTypeUInt8>();
445
3.31k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE
Line
Count
Source
443
32.8k
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
444
32.8k
        return std::make_shared<DataTypeUInt8>();
445
32.8k
    }
446
447
    Status evaluate_inverted_index(
448
            const ColumnsWithTypeAndName& arguments,
449
            const std::vector<IndexFieldNameAndTypePair>& data_type_with_names,
450
            std::vector<segment_v2::IndexIterator*> iterators, uint32_t num_rows,
451
            const InvertedIndexAnalyzerCtx* analyzer_ctx,
452
1.72k
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
1.72k
        DCHECK(arguments.size() == 1);
454
1.72k
        DCHECK(data_type_with_names.size() == 1);
455
1.72k
        DCHECK(iterators.size() == 1);
456
1.72k
        auto* iter = iterators[0];
457
1.72k
        auto data_type_with_name = data_type_with_names[0];
458
1.72k
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
1.72k
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
430
            return Status::OK();
463
430
        }
464
1.29k
        segment_v2::InvertedIndexQueryType query_type;
465
1.29k
        std::string_view name_view(name);
466
1.29k
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
838
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
838
        } else if (name_view == NameLess::name) {
469
116
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
339
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
241
        } else if (name_view == NameGreater::name) {
473
113
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
136
        } else if (name_view == NameGreaterOrEquals::name) {
475
136
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
1.30k
        if (segment_v2::is_range_query(query_type) &&
481
1.30k
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
171
            return Status::OK();
484
171
        }
485
1.13k
        Field param_value;
486
1.13k
        arguments[0].column->get(0, param_value);
487
1.13k
        if (param_value.is_null()) {
488
1
            return Status::OK();
489
1
        }
490
1.12k
        auto param_type = arguments[0].type->get_primitive_type();
491
1.12k
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
1.12k
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
1.12k
                param_type, &param_value, query_param));
494
495
1.12k
        segment_v2::InvertedIndexParam param;
496
1.12k
        param.column_name = data_type_with_name.first;
497
1.12k
        param.column_type = data_type_with_name.second;
498
1.12k
        param.query_value = query_param->get_value();
499
1.12k
        param.query_type = query_type;
500
1.12k
        param.num_rows = num_rows;
501
1.12k
        param.roaring = std::make_shared<roaring::Roaring>();
502
1.12k
        param.analyzer_ctx = analyzer_ctx;
503
1.12k
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
982
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
982
        if (iter->has_null()) {
506
981
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
981
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
981
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
981
        }
510
982
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
982
        bitmap_result = result;
512
982
        bitmap_result.mask_out_null();
513
514
982
        if (name_view == NameNotEquals::name) {
515
62
            roaring::Roaring full_result;
516
62
            full_result.addRange(0, num_rows);
517
62
            bitmap_result.op_not(&full_result);
518
62
        }
519
520
982
        return Status::OK();
521
982
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
837
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
837
        DCHECK(arguments.size() == 1);
454
837
        DCHECK(data_type_with_names.size() == 1);
455
837
        DCHECK(iterators.size() == 1);
456
837
        auto* iter = iterators[0];
457
837
        auto data_type_with_name = data_type_with_names[0];
458
837
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
837
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
73
            return Status::OK();
463
73
        }
464
764
        segment_v2::InvertedIndexQueryType query_type;
465
764
        std::string_view name_view(name);
466
768
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
768
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
18.4E
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
18.4E
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
18.4E
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
768
        if (segment_v2::is_range_query(query_type) &&
481
768
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
0
            return Status::OK();
484
0
        }
485
768
        Field param_value;
486
768
        arguments[0].column->get(0, param_value);
487
768
        if (param_value.is_null()) {
488
1
            return Status::OK();
489
1
        }
490
767
        auto param_type = arguments[0].type->get_primitive_type();
491
767
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
767
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
767
                param_type, &param_value, query_param));
494
495
766
        segment_v2::InvertedIndexParam param;
496
766
        param.column_name = data_type_with_name.first;
497
766
        param.column_type = data_type_with_name.second;
498
766
        param.query_value = query_param->get_value();
499
766
        param.query_type = query_type;
500
766
        param.num_rows = num_rows;
501
766
        param.roaring = std::make_shared<roaring::Roaring>();
502
766
        param.analyzer_ctx = analyzer_ctx;
503
766
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
731
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
734
        if (iter->has_null()) {
506
734
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
734
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
734
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
734
        }
510
731
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
731
        bitmap_result = result;
512
731
        bitmap_result.mask_out_null();
513
514
731
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
731
        return Status::OK();
521
731
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
76
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
76
        DCHECK(arguments.size() == 1);
454
76
        DCHECK(data_type_with_names.size() == 1);
455
76
        DCHECK(iterators.size() == 1);
456
76
        auto* iter = iterators[0];
457
76
        auto data_type_with_name = data_type_with_names[0];
458
76
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
76
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
8
            return Status::OK();
463
8
        }
464
68
        segment_v2::InvertedIndexQueryType query_type;
465
68
        std::string_view name_view(name);
466
70
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
70
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
18.4E
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
18.4E
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
18.4E
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
70
        if (segment_v2::is_range_query(query_type) &&
481
70
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
0
            return Status::OK();
484
0
        }
485
70
        Field param_value;
486
70
        arguments[0].column->get(0, param_value);
487
70
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
70
        auto param_type = arguments[0].type->get_primitive_type();
491
70
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
70
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
70
                param_type, &param_value, query_param));
494
495
70
        segment_v2::InvertedIndexParam param;
496
70
        param.column_name = data_type_with_name.first;
497
70
        param.column_type = data_type_with_name.second;
498
70
        param.query_value = query_param->get_value();
499
70
        param.query_type = query_type;
500
70
        param.num_rows = num_rows;
501
70
        param.roaring = std::make_shared<roaring::Roaring>();
502
70
        param.analyzer_ctx = analyzer_ctx;
503
70
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
63
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
63
        if (iter->has_null()) {
506
63
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
63
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
63
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
63
        }
510
63
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
63
        bitmap_result = result;
512
63
        bitmap_result.mask_out_null();
513
514
63
        if (name_view == NameNotEquals::name) {
515
62
            roaring::Roaring full_result;
516
62
            full_result.addRange(0, num_rows);
517
62
            bitmap_result.op_not(&full_result);
518
62
        }
519
520
63
        return Status::OK();
521
63
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
175
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
175
        DCHECK(arguments.size() == 1);
454
175
        DCHECK(data_type_with_names.size() == 1);
455
175
        DCHECK(iterators.size() == 1);
456
175
        auto* iter = iterators[0];
457
175
        auto data_type_with_name = data_type_with_names[0];
458
175
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
175
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
62
            return Status::OK();
463
62
        }
464
113
        segment_v2::InvertedIndexQueryType query_type;
465
113
        std::string_view name_view(name);
466
113
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
113
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
113
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
113
        } else if (name_view == NameGreater::name) {
473
113
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
113
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
0
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
113
        if (segment_v2::is_range_query(query_type) &&
481
113
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
28
            return Status::OK();
484
28
        }
485
85
        Field param_value;
486
85
        arguments[0].column->get(0, param_value);
487
85
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
85
        auto param_type = arguments[0].type->get_primitive_type();
491
85
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
85
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
85
                param_type, &param_value, query_param));
494
495
85
        segment_v2::InvertedIndexParam param;
496
85
        param.column_name = data_type_with_name.first;
497
85
        param.column_type = data_type_with_name.second;
498
85
        param.query_value = query_param->get_value();
499
85
        param.query_type = query_type;
500
85
        param.num_rows = num_rows;
501
85
        param.roaring = std::make_shared<roaring::Roaring>();
502
85
        param.analyzer_ctx = analyzer_ctx;
503
85
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
66
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
66
        if (iter->has_null()) {
506
66
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
66
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
66
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
66
        }
510
66
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
66
        bitmap_result = result;
512
66
        bitmap_result.mask_out_null();
513
514
66
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
66
        return Status::OK();
521
66
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
249
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
249
        DCHECK(arguments.size() == 1);
454
249
        DCHECK(data_type_with_names.size() == 1);
455
249
        DCHECK(iterators.size() == 1);
456
249
        auto* iter = iterators[0];
457
249
        auto data_type_with_name = data_type_with_names[0];
458
249
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
249
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
114
            return Status::OK();
463
114
        }
464
135
        segment_v2::InvertedIndexQueryType query_type;
465
135
        std::string_view name_view(name);
466
136
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
135
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
135
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
135
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
136
        } else if (name_view == NameGreaterOrEquals::name) {
475
136
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
136
        if (segment_v2::is_range_query(query_type) &&
481
136
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
59
            return Status::OK();
484
59
        }
485
77
        Field param_value;
486
77
        arguments[0].column->get(0, param_value);
487
77
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
77
        auto param_type = arguments[0].type->get_primitive_type();
491
77
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
77
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
77
                param_type, &param_value, query_param));
494
495
77
        segment_v2::InvertedIndexParam param;
496
77
        param.column_name = data_type_with_name.first;
497
77
        param.column_type = data_type_with_name.second;
498
77
        param.query_value = query_param->get_value();
499
77
        param.query_type = query_type;
500
77
        param.num_rows = num_rows;
501
77
        param.roaring = std::make_shared<roaring::Roaring>();
502
77
        param.analyzer_ctx = analyzer_ctx;
503
77
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
35
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
35
        if (iter->has_null()) {
506
35
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
35
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
35
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
35
        }
510
35
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
35
        bitmap_result = result;
512
35
        bitmap_result.mask_out_null();
513
514
35
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
35
        return Status::OK();
521
35
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
176
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
176
        DCHECK(arguments.size() == 1);
454
176
        DCHECK(data_type_with_names.size() == 1);
455
176
        DCHECK(iterators.size() == 1);
456
176
        auto* iter = iterators[0];
457
176
        auto data_type_with_name = data_type_with_names[0];
458
176
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
176
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
61
            return Status::OK();
463
61
        }
464
115
        segment_v2::InvertedIndexQueryType query_type;
465
115
        std::string_view name_view(name);
466
116
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
116
        } else if (name_view == NameLess::name) {
469
116
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
18.4E
        } else if (name_view == NameLessOrEquals::name) {
471
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
18.4E
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
18.4E
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
18.4E
        } else {
477
18.4E
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
18.4E
        }
479
480
116
        if (segment_v2::is_range_query(query_type) &&
481
116
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
26
            return Status::OK();
484
26
        }
485
90
        Field param_value;
486
90
        arguments[0].column->get(0, param_value);
487
90
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
90
        auto param_type = arguments[0].type->get_primitive_type();
491
90
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
90
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
90
                param_type, &param_value, query_param));
494
495
90
        segment_v2::InvertedIndexParam param;
496
90
        param.column_name = data_type_with_name.first;
497
90
        param.column_type = data_type_with_name.second;
498
90
        param.query_value = query_param->get_value();
499
90
        param.query_type = query_type;
500
90
        param.num_rows = num_rows;
501
90
        param.roaring = std::make_shared<roaring::Roaring>();
502
90
        param.analyzer_ctx = analyzer_ctx;
503
90
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
67
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
67
        if (iter->has_null()) {
506
64
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
64
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
64
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
64
        }
510
67
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
67
        bitmap_result = result;
512
67
        bitmap_result.mask_out_null();
513
514
67
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
67
        return Status::OK();
521
67
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS5_EERKS4_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISL_EES4_IPNS_10segment_v213IndexIteratorESaISS_EEjPKNS_24InvertedIndexAnalyzerCtxERNSQ_25InvertedIndexResultBitmapE
Line
Count
Source
452
210
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
453
210
        DCHECK(arguments.size() == 1);
454
210
        DCHECK(data_type_with_names.size() == 1);
455
210
        DCHECK(iterators.size() == 1);
456
210
        auto* iter = iterators[0];
457
210
        auto data_type_with_name = data_type_with_names[0];
458
210
        if (iter == nullptr) {
459
0
            return Status::OK();
460
0
        }
461
210
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
462
112
            return Status::OK();
463
112
        }
464
98
        segment_v2::InvertedIndexQueryType query_type;
465
98
        std::string_view name_view(name);
466
98
        if (name_view == NameEquals::name || name_view == NameNotEquals::name) {
467
0
            query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
468
98
        } else if (name_view == NameLess::name) {
469
0
            query_type = segment_v2::InvertedIndexQueryType::LESS_THAN_QUERY;
470
98
        } else if (name_view == NameLessOrEquals::name) {
471
98
            query_type = segment_v2::InvertedIndexQueryType::LESS_EQUAL_QUERY;
472
98
        } else if (name_view == NameGreater::name) {
473
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_THAN_QUERY;
474
0
        } else if (name_view == NameGreaterOrEquals::name) {
475
0
            query_type = segment_v2::InvertedIndexQueryType::GREATER_EQUAL_QUERY;
476
0
        } else {
477
0
            return Status::InvalidArgument("invalid comparison op type {}", Name::name);
478
0
        }
479
480
98
        if (segment_v2::is_range_query(query_type) &&
481
98
            iter->get_reader(segment_v2::InvertedIndexReaderType::STRING_TYPE)) {
482
            // untokenized strings exceed ignore_above, they are written as null, causing range query errors
483
58
            return Status::OK();
484
58
        }
485
40
        Field param_value;
486
40
        arguments[0].column->get(0, param_value);
487
40
        if (param_value.is_null()) {
488
0
            return Status::OK();
489
0
        }
490
40
        auto param_type = arguments[0].type->get_primitive_type();
491
40
        std::unique_ptr<segment_v2::InvertedIndexQueryParamFactory> query_param = nullptr;
492
40
        RETURN_IF_ERROR(segment_v2::InvertedIndexQueryParamFactory::create_query_value(
493
40
                param_type, &param_value, query_param));
494
495
40
        segment_v2::InvertedIndexParam param;
496
40
        param.column_name = data_type_with_name.first;
497
40
        param.column_type = data_type_with_name.second;
498
40
        param.query_value = query_param->get_value();
499
40
        param.query_type = query_type;
500
40
        param.num_rows = num_rows;
501
40
        param.roaring = std::make_shared<roaring::Roaring>();
502
40
        param.analyzer_ctx = analyzer_ctx;
503
40
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
504
20
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
505
20
        if (iter->has_null()) {
506
19
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
507
19
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
508
19
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
509
19
        }
510
20
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
511
20
        bitmap_result = result;
512
20
        bitmap_result.mask_out_null();
513
514
20
        if (name_view == NameNotEquals::name) {
515
0
            roaring::Roaring full_result;
516
0
            full_result.addRange(0, num_rows);
517
0
            bitmap_result.op_not(&full_result);
518
0
        }
519
520
20
        return Status::OK();
521
20
    }
522
523
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
524
148k
                        uint32_t result, size_t input_rows_count) const override {
525
148k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
148k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
148k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
148k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
148k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
148k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
148k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
148k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
148k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
148k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
0
            } else {
553
0
                block.get_by_position(result).column =
554
0
                        DataTypeUInt8()
555
0
                                .create_column_const(input_rows_count,
556
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
0
                                ->convert_to_full_column_if_const();
558
0
                return Status::OK();
559
0
            }
560
0
        }
561
562
260k
        auto can_compare = [](PrimitiveType t) -> bool {
563
260k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
260k
        };
_ZZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
72.1k
        auto can_compare = [](PrimitiveType t) -> bool {
563
72.1k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
72.1k
        };
_ZZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
5.95k
        auto can_compare = [](PrimitiveType t) -> bool {
563
5.95k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
5.95k
        };
_ZZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
56.8k
        auto can_compare = [](PrimitiveType t) -> bool {
563
56.8k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
56.8k
        };
_ZZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
48.8k
        auto can_compare = [](PrimitiveType t) -> bool {
563
48.8k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
48.8k
        };
_ZZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
16.2k
        auto can_compare = [](PrimitiveType t) -> bool {
563
16.2k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
16.2k
        };
_ZZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlNS_13PrimitiveTypeEE_clESD_
Line
Count
Source
562
60.3k
        auto can_compare = [](PrimitiveType t) -> bool {
563
60.3k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
60.3k
        };
565
566
148k
        if (can_compare(left_type->get_primitive_type()) &&
567
148k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
111k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
111k
        }
575
576
148k
        auto compare_type = left_type->get_primitive_type();
577
148k
        switch (compare_type) {
578
1.17k
        case TYPE_BOOLEAN:
579
1.17k
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
12.0k
        case TYPE_DATEV2:
581
12.0k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
1.97k
        case TYPE_DATETIMEV2:
583
1.97k
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
16
        case TYPE_TIMESTAMPTZ:
585
16
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
5.08k
        case TYPE_TINYINT:
587
5.08k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
2.13k
        case TYPE_SMALLINT:
589
2.13k
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
64.0k
        case TYPE_INT:
591
64.0k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
21.1k
        case TYPE_BIGINT:
593
21.1k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
646
        case TYPE_LARGEINT:
595
646
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
70
        case TYPE_IPV4:
597
70
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
48
        case TYPE_IPV6:
599
48
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
759
        case TYPE_FLOAT:
601
759
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
2.82k
        case TYPE_DOUBLE:
603
2.82k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
4
        case TYPE_TIMEV2:
606
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
444
        case TYPE_DECIMAL32:
609
7.55k
        case TYPE_DECIMAL64:
610
12.3k
        case TYPE_DECIMAL128I:
611
12.4k
        case TYPE_DECIMAL256:
612
12.4k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
12.4k
                                   col_with_type_and_name_right);
614
897
        case TYPE_CHAR:
615
9.85k
        case TYPE_VARCHAR:
616
23.9k
        case TYPE_STRING:
617
23.9k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
110
        default:
619
110
            return execute_generic(block, result, col_with_type_and_name_left,
620
110
                                   col_with_type_and_name_right);
621
148k
        }
622
0
        return Status::OK();
623
148k
    }
_ZNK5doris18FunctionComparisonINS_8EqualsOpENS_10NameEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
47.7k
                        uint32_t result, size_t input_rows_count) const override {
525
47.7k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
47.7k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
47.7k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
47.7k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
47.7k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
47.7k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
47.7k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
47.7k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
47.7k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
47.7k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
            } else {
553
                block.get_by_position(result).column =
554
                        DataTypeUInt8()
555
                                .create_column_const(input_rows_count,
556
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
                                ->convert_to_full_column_if_const();
558
                return Status::OK();
559
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
47.7k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
47.7k
        };
565
566
47.7k
        if (can_compare(left_type->get_primitive_type()) &&
567
47.7k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
24.3k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
24.3k
        }
575
576
47.7k
        auto compare_type = left_type->get_primitive_type();
577
47.7k
        switch (compare_type) {
578
860
        case TYPE_BOOLEAN:
579
860
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
1.22k
        case TYPE_DATEV2:
581
1.22k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
708
        case TYPE_DATETIMEV2:
583
708
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
3.58k
        case TYPE_TINYINT:
587
3.58k
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
704
        case TYPE_SMALLINT:
589
704
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
6.91k
        case TYPE_INT:
591
6.91k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
9.77k
        case TYPE_BIGINT:
593
9.77k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
144
        case TYPE_LARGEINT:
595
144
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
31
        case TYPE_IPV4:
597
31
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
30
        case TYPE_IPV6:
599
30
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
122
        case TYPE_FLOAT:
601
122
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
294
        case TYPE_DOUBLE:
603
294
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
4
        case TYPE_TIMEV2:
606
4
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
219
        case TYPE_DECIMAL32:
609
475
        case TYPE_DECIMAL64:
610
1.83k
        case TYPE_DECIMAL128I:
611
1.86k
        case TYPE_DECIMAL256:
612
1.86k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
1.86k
                                   col_with_type_and_name_right);
614
669
        case TYPE_CHAR:
615
8.63k
        case TYPE_VARCHAR:
616
21.4k
        case TYPE_STRING:
617
21.4k
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
17
        default:
619
17
            return execute_generic(block, result, col_with_type_and_name_left,
620
17
                                   col_with_type_and_name_right);
621
47.7k
        }
622
0
        return Status::OK();
623
47.7k
    }
_ZNK5doris18FunctionComparisonINS_11NotEqualsOpENS_13NameNotEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
3.55k
                        uint32_t result, size_t input_rows_count) const override {
525
3.55k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
3.55k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
3.55k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
3.55k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
3.55k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
3.55k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
3.55k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
3.55k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
3.56k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
3.56k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
                block.get_by_position(result).column =
547
                        DataTypeUInt8()
548
                                .create_column_const(input_rows_count,
549
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
                                ->convert_to_full_column_if_const();
551
                return Status::OK();
552
0
            } else {
553
0
                block.get_by_position(result).column =
554
0
                        DataTypeUInt8()
555
0
                                .create_column_const(input_rows_count,
556
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
0
                                ->convert_to_full_column_if_const();
558
0
                return Status::OK();
559
0
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
3.55k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
3.55k
        };
565
566
3.55k
        if (can_compare(left_type->get_primitive_type()) &&
567
3.55k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
2.39k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
2.39k
        }
575
576
3.55k
        auto compare_type = left_type->get_primitive_type();
577
3.55k
        switch (compare_type) {
578
0
        case TYPE_BOOLEAN:
579
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
49
        case TYPE_DATEV2:
581
49
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
2
        case TYPE_DATETIMEV2:
583
2
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
0
        case TYPE_TIMESTAMPTZ:
585
0
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
96
        case TYPE_TINYINT:
587
96
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
4
        case TYPE_SMALLINT:
589
4
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
1.18k
        case TYPE_INT:
591
1.18k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
926
        case TYPE_BIGINT:
593
926
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
0
        case TYPE_LARGEINT:
595
0
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
0
        case TYPE_IPV4:
597
0
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
0
        case TYPE_IPV6:
599
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
52
        case TYPE_FLOAT:
601
52
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
72
        case TYPE_DOUBLE:
603
72
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
0
        case TYPE_DECIMAL32:
609
61
        case TYPE_DECIMAL64:
610
385
        case TYPE_DECIMAL128I:
611
415
        case TYPE_DECIMAL256:
612
415
            return execute_decimal(block, result, col_with_type_and_name_left,
613
415
                                   col_with_type_and_name_right);
614
9
        case TYPE_CHAR:
615
302
        case TYPE_VARCHAR:
616
747
        case TYPE_STRING:
617
747
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
8
        default:
619
8
            return execute_generic(block, result, col_with_type_and_name_left,
620
8
                                   col_with_type_and_name_right);
621
3.55k
        }
622
0
        return Status::OK();
623
3.55k
    }
_ZNK5doris18FunctionComparisonINS_9GreaterOpENS_11NameGreaterEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
31.4k
                        uint32_t result, size_t input_rows_count) const override {
525
31.4k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
31.4k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
31.4k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
31.4k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
31.4k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
31.4k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
31.4k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
31.4k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
31.4k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
31.4k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
                block.get_by_position(result).column =
547
                        DataTypeUInt8()
548
                                .create_column_const(input_rows_count,
549
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
                                ->convert_to_full_column_if_const();
551
                return Status::OK();
552
0
            } else {
553
0
                block.get_by_position(result).column =
554
0
                        DataTypeUInt8()
555
0
                                .create_column_const(input_rows_count,
556
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
0
                                ->convert_to_full_column_if_const();
558
0
                return Status::OK();
559
0
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
31.4k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
31.4k
        };
565
566
31.4k
        if (can_compare(left_type->get_primitive_type()) &&
567
31.4k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
25.4k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
25.4k
        }
575
576
31.4k
        auto compare_type = left_type->get_primitive_type();
577
31.4k
        switch (compare_type) {
578
0
        case TYPE_BOOLEAN:
579
0
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
1.36k
        case TYPE_DATEV2:
581
1.36k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
59
        case TYPE_DATETIMEV2:
583
59
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
620
        case TYPE_TINYINT:
587
620
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
877
        case TYPE_SMALLINT:
589
877
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
12.0k
        case TYPE_INT:
591
12.0k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
8.23k
        case TYPE_BIGINT:
593
8.23k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
247
        case TYPE_LARGEINT:
595
247
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
2
        case TYPE_IPV4:
597
2
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
1
        case TYPE_IPV6:
599
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
232
        case TYPE_FLOAT:
601
232
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
1.74k
        case TYPE_DOUBLE:
603
1.74k
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
22
        case TYPE_DECIMAL32:
609
4.14k
        case TYPE_DECIMAL64:
610
5.80k
        case TYPE_DECIMAL128I:
611
5.81k
        case TYPE_DECIMAL256:
612
5.81k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
5.81k
                                   col_with_type_and_name_right);
614
21
        case TYPE_CHAR:
615
89
        case TYPE_VARCHAR:
616
197
        case TYPE_STRING:
617
197
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
9
        default:
619
9
            return execute_generic(block, result, col_with_type_and_name_left,
620
9
                                   col_with_type_and_name_right);
621
31.4k
        }
622
0
        return Status::OK();
623
31.4k
    }
_ZNK5doris18FunctionComparisonINS_17GreaterOrEqualsOpENS_19NameGreaterOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
24.8k
                        uint32_t result, size_t input_rows_count) const override {
525
24.8k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
24.8k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
24.8k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
24.8k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
24.8k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
24.8k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
24.8k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
24.8k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
24.8k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
24.8k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
            } else {
553
                block.get_by_position(result).column =
554
                        DataTypeUInt8()
555
                                .create_column_const(input_rows_count,
556
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
                                ->convert_to_full_column_if_const();
558
                return Status::OK();
559
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
24.8k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
24.8k
        };
565
566
24.8k
        if (can_compare(left_type->get_primitive_type()) &&
567
24.8k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
24.0k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
24.0k
        }
575
576
24.8k
        auto compare_type = left_type->get_primitive_type();
577
24.8k
        switch (compare_type) {
578
126
        case TYPE_BOOLEAN:
579
126
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
1.46k
        case TYPE_DATEV2:
581
1.46k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
484
        case TYPE_DATETIMEV2:
583
484
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
96
        case TYPE_TINYINT:
587
96
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
131
        case TYPE_SMALLINT:
589
131
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
20.9k
        case TYPE_INT:
591
20.9k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
436
        case TYPE_BIGINT:
593
436
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
27
        case TYPE_LARGEINT:
595
27
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
11
        case TYPE_IPV4:
597
11
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
1
        case TYPE_IPV6:
599
1
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
102
        case TYPE_FLOAT:
601
102
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
213
        case TYPE_DOUBLE:
603
213
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
3
        case TYPE_DECIMAL32:
609
251
        case TYPE_DECIMAL64:
610
289
        case TYPE_DECIMAL128I:
611
316
        case TYPE_DECIMAL256:
612
316
            return execute_decimal(block, result, col_with_type_and_name_left,
613
316
                                   col_with_type_and_name_right);
614
29
        case TYPE_CHAR:
615
253
        case TYPE_VARCHAR:
616
510
        case TYPE_STRING:
617
510
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
31
        default:
619
31
            return execute_generic(block, result, col_with_type_and_name_left,
620
31
                                   col_with_type_and_name_right);
621
24.8k
        }
622
0
        return Status::OK();
623
24.8k
    }
_ZNK5doris18FunctionComparisonINS_6LessOpENS_8NameLessEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
8.95k
                        uint32_t result, size_t input_rows_count) const override {
525
8.95k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
8.95k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
8.95k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
8.95k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
8.95k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
8.95k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
8.95k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
8.95k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
8.95k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
8.95k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
                block.get_by_position(result).column =
547
                        DataTypeUInt8()
548
                                .create_column_const(input_rows_count,
549
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
                                ->convert_to_full_column_if_const();
551
                return Status::OK();
552
0
            } else {
553
0
                block.get_by_position(result).column =
554
0
                        DataTypeUInt8()
555
0
                                .create_column_const(input_rows_count,
556
0
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
0
                                ->convert_to_full_column_if_const();
558
0
                return Status::OK();
559
0
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
8.95k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
8.95k
        };
565
566
8.95k
        if (can_compare(left_type->get_primitive_type()) &&
567
8.95k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
7.34k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
7.34k
        }
575
576
8.95k
        auto compare_type = left_type->get_primitive_type();
577
8.95k
        switch (compare_type) {
578
81
        case TYPE_BOOLEAN:
579
81
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
2.03k
        case TYPE_DATEV2:
581
2.03k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
452
        case TYPE_DATETIMEV2:
583
452
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
4
        case TYPE_TIMESTAMPTZ:
585
4
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
541
        case TYPE_TINYINT:
587
541
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
210
        case TYPE_SMALLINT:
589
210
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
2.02k
        case TYPE_INT:
591
2.02k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
1.28k
        case TYPE_BIGINT:
593
1.28k
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
197
        case TYPE_LARGEINT:
595
197
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
16
        case TYPE_IPV4:
597
16
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
16
        case TYPE_IPV6:
599
16
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
155
        case TYPE_FLOAT:
601
155
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
339
        case TYPE_DOUBLE:
603
339
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
190
        case TYPE_DECIMAL32:
609
422
        case TYPE_DECIMAL64:
610
1.05k
        case TYPE_DECIMAL128I:
611
1.05k
        case TYPE_DECIMAL256:
612
1.05k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
1.05k
                                   col_with_type_and_name_right);
614
148
        case TYPE_CHAR:
615
305
        case TYPE_VARCHAR:
616
528
        case TYPE_STRING:
617
528
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
11
        default:
619
11
            return execute_generic(block, result, col_with_type_and_name_left,
620
11
                                   col_with_type_and_name_right);
621
8.95k
        }
622
0
        return Status::OK();
623
8.95k
    }
_ZNK5doris18FunctionComparisonINS_14LessOrEqualsOpENS_16NameLessOrEqualsEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
524
31.9k
                        uint32_t result, size_t input_rows_count) const override {
525
31.9k
        const auto& col_with_type_and_name_left = block.get_by_position(arguments[0]);
526
31.9k
        const auto& col_with_type_and_name_right = block.get_by_position(arguments[1]);
527
528
31.9k
        const auto& col_left_ptr = col_with_type_and_name_left.column;
529
31.9k
        const auto& col_right_ptr = col_with_type_and_name_right.column;
530
31.9k
        const IColumn* col_left_untyped = col_with_type_and_name_left.column.get();
531
31.9k
        const IColumn* col_right_untyped = col_with_type_and_name_right.column.get();
532
533
31.9k
        const DataTypePtr& left_type = col_with_type_and_name_left.type;
534
31.9k
        const DataTypePtr& right_type = col_with_type_and_name_right.type;
535
536
        /// The case when arguments are the same (tautological comparison). Return constant.
537
        /// NOTE: Nullable types are special case. (BTW, this function use default implementation for Nullable, so Nullable types cannot be here. Check just in case.)
538
        /// NOTE: We consider NaN comparison to be implementation specific (and in our implementation NaNs are sometimes equal sometimes not).
539
31.9k
        if (left_type->equals(*right_type) && !left_type->is_nullable() &&
540
31.9k
            col_left_untyped == col_right_untyped) {
541
            /// Always true: =, <=, >=
542
            // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column.
543
            if constexpr (std::is_same_v<Op<TYPE_INT>, EqualsOp<TYPE_INT>> ||
544
                          std::is_same_v<Op<TYPE_INT>, LessOrEqualsOp<TYPE_INT>> ||
545
0
                          std::is_same_v<Op<TYPE_INT>, GreaterOrEqualsOp<TYPE_INT>>) {
546
0
                block.get_by_position(result).column =
547
0
                        DataTypeUInt8()
548
0
                                .create_column_const(input_rows_count,
549
0
                                                     Field::create_field<TYPE_BOOLEAN>(1))
550
0
                                ->convert_to_full_column_if_const();
551
0
                return Status::OK();
552
            } else {
553
                block.get_by_position(result).column =
554
                        DataTypeUInt8()
555
                                .create_column_const(input_rows_count,
556
                                                     Field::create_field<TYPE_BOOLEAN>(0))
557
                                ->convert_to_full_column_if_const();
558
                return Status::OK();
559
            }
560
0
        }
561
562
0
        auto can_compare = [](PrimitiveType t) -> bool {
563
31.9k
            return is_int_or_bool(t) || is_float_or_double(t) || is_ip(t) || is_date_type(t);
564
31.9k
        };
565
566
31.9k
        if (can_compare(left_type->get_primitive_type()) &&
567
31.9k
            can_compare(right_type->get_primitive_type())) {
568
            // check left type equals right type TODO: remove this after FE is aware of scales difference
569
28.4k
            if (!left_type->equals_ignore_precision(*right_type)) {
570
0
                return Status::RuntimeError("not same type in function {} , left : {} , right : {}",
571
0
                                            get_name(), left_type->get_name(),
572
0
                                            right_type->get_name());
573
0
            }
574
28.4k
        }
575
576
31.9k
        auto compare_type = left_type->get_primitive_type();
577
31.9k
        switch (compare_type) {
578
109
        case TYPE_BOOLEAN:
579
109
            return execute_num_type<TYPE_BOOLEAN>(block, result, col_left_ptr, col_right_ptr);
580
5.91k
        case TYPE_DATEV2:
581
5.91k
            return execute_num_type<TYPE_DATEV2>(block, result, col_left_ptr, col_right_ptr);
582
267
        case TYPE_DATETIMEV2:
583
267
            return execute_num_type<TYPE_DATETIMEV2>(block, result, col_left_ptr, col_right_ptr);
584
3
        case TYPE_TIMESTAMPTZ:
585
3
            return execute_num_type<TYPE_TIMESTAMPTZ>(block, result, col_left_ptr, col_right_ptr);
586
150
        case TYPE_TINYINT:
587
150
            return execute_num_type<TYPE_TINYINT>(block, result, col_left_ptr, col_right_ptr);
588
213
        case TYPE_SMALLINT:
589
213
            return execute_num_type<TYPE_SMALLINT>(block, result, col_left_ptr, col_right_ptr);
590
20.9k
        case TYPE_INT:
591
20.9k
            return execute_num_type<TYPE_INT>(block, result, col_left_ptr, col_right_ptr);
592
449
        case TYPE_BIGINT:
593
449
            return execute_num_type<TYPE_BIGINT>(block, result, col_left_ptr, col_right_ptr);
594
31
        case TYPE_LARGEINT:
595
31
            return execute_num_type<TYPE_LARGEINT>(block, result, col_left_ptr, col_right_ptr);
596
10
        case TYPE_IPV4:
597
10
            return execute_num_type<TYPE_IPV4>(block, result, col_left_ptr, col_right_ptr);
598
0
        case TYPE_IPV6:
599
0
            return execute_num_type<TYPE_IPV6>(block, result, col_left_ptr, col_right_ptr);
600
96
        case TYPE_FLOAT:
601
96
            return execute_num_type<TYPE_FLOAT>(block, result, col_left_ptr, col_right_ptr);
602
162
        case TYPE_DOUBLE:
603
162
            return execute_num_type<TYPE_DOUBLE>(block, result, col_left_ptr, col_right_ptr);
604
0
        case TYPE_TIME:
605
0
        case TYPE_TIMEV2:
606
0
            return execute_num_type<TYPE_TIMEV2>(block, result, col_left_ptr, col_right_ptr);
607
0
        case TYPE_DECIMALV2:
608
10
        case TYPE_DECIMAL32:
609
2.20k
        case TYPE_DECIMAL64:
610
2.93k
        case TYPE_DECIMAL128I:
611
2.95k
        case TYPE_DECIMAL256:
612
2.95k
            return execute_decimal(block, result, col_with_type_and_name_left,
613
2.95k
                                   col_with_type_and_name_right);
614
21
        case TYPE_CHAR:
615
264
        case TYPE_VARCHAR:
616
508
        case TYPE_STRING:
617
508
            return execute_string(block, result, col_left_untyped, col_right_untyped);
618
34
        default:
619
34
            return execute_generic(block, result, col_with_type_and_name_left,
620
34
                                   col_with_type_and_name_right);
621
31.9k
        }
622
0
        return Status::OK();
623
31.9k
    }
624
};
625
626
#include "common/compile_check_end.h"
627
} // namespace doris