Coverage Report

Created: 2026-05-13 01:09

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exprs/function/array/function_array_index.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/array/arrayIndex.h
19
// and modified by Doris
20
#pragma once
21
22
#include <stddef.h>
23
24
#include <memory>
25
#include <utility>
26
27
#include "common/status.h"
28
#include "core/assert_cast.h"
29
#include "core/block/block.h"
30
#include "core/block/column_numbers.h"
31
#include "core/block/column_with_type_and_name.h"
32
#include "core/call_on_type_index.h"
33
#include "core/column/column.h"
34
#include "core/column/column_array.h"
35
#include "core/column/column_nullable.h"
36
#include "core/column/column_string.h"
37
#include "core/column/column_vector.h"
38
#include "core/data_type/data_type.h"
39
#include "core/data_type/data_type_array.h"
40
#include "core/data_type/data_type_nullable.h"
41
#include "core/data_type/data_type_number.h" // IWYU pragma: keep
42
#include "core/data_type/define_primitive_type.h"
43
#include "core/data_type/primitive_type.h"
44
#include "core/field.h"
45
#include "core/string_ref.h"
46
#include "core/types.h"
47
#include "exprs/function/function.h"
48
#include "storage/index/index_reader_helper.h"
49
#include "storage/index/inverted/inverted_index_query_type.h"
50
#include "storage/index/inverted/inverted_index_reader.h"
51
#include "storage/predicate/column_predicate.h"
52
53
namespace doris {
54
class FunctionContext;
55
} // namespace doris
56
57
namespace doris {
58
59
struct ArrayContainsAction {
60
    static constexpr auto ResultType = PrimitiveType::TYPE_BOOLEAN;
61
    static constexpr auto name = "array_contains";
62
    static constexpr const bool resume_execution = false;
63
    static constexpr void apply(typename PrimitiveTypeTraits<ResultType>::CppType& current,
64
10
                                size_t) noexcept {
65
10
        current = 1;
66
10
    }
67
};
68
69
struct ArrayPositionAction {
70
    static constexpr auto ResultType = PrimitiveType::TYPE_BIGINT;
71
    static constexpr auto name = "array_position";
72
    static constexpr const bool resume_execution = false;
73
    static constexpr void apply(typename PrimitiveTypeTraits<ResultType>::CppType& current,
74
7
                                size_t j) noexcept {
75
7
        current = j + 1;
76
7
    }
77
};
78
79
struct ArrayCountEqual {
80
    static constexpr auto ResultType = PrimitiveType::TYPE_BIGINT;
81
    static constexpr auto name = "countequal";
82
    static constexpr const bool resume_execution = true;
83
    static constexpr void apply(typename PrimitiveTypeTraits<ResultType>::CppType& current,
84
0
                                size_t j) noexcept {
85
0
        ++current;
86
0
    }
87
};
88
89
struct ParamValue {
90
    PrimitiveType type;
91
    Field value;
92
};
93
94
template <typename ConcreteAction>
95
class FunctionArrayIndex : public IFunction {
96
public:
97
    static constexpr auto ResultType = ConcreteAction::ResultType;
98
99
    static constexpr auto name = ConcreteAction::name;
100
19
    static FunctionPtr create() { return std::make_shared<FunctionArrayIndex>(); }
_ZN5doris18FunctionArrayIndexINS_19ArrayContainsActionEE6createEv
Line
Count
Source
100
10
    static FunctionPtr create() { return std::make_shared<FunctionArrayIndex>(); }
_ZN5doris18FunctionArrayIndexINS_19ArrayPositionActionEE6createEv
Line
Count
Source
100
7
    static FunctionPtr create() { return std::make_shared<FunctionArrayIndex>(); }
_ZN5doris18FunctionArrayIndexINS_15ArrayCountEqualEE6createEv
Line
Count
Source
100
2
    static FunctionPtr create() { return std::make_shared<FunctionArrayIndex>(); }
101
102
    /// Get function name.
103
3
    String get_name() const override { return name; }
_ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE8get_nameB5cxx11Ev
Line
Count
Source
103
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE8get_nameB5cxx11Ev
Line
Count
Source
103
1
    String get_name() const override { return name; }
_ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE8get_nameB5cxx11Ev
Line
Count
Source
103
1
    String get_name() const override { return name; }
104
105
16
    bool is_variadic() const override { return false; }
_ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE11is_variadicEv
Line
Count
Source
105
9
    bool is_variadic() const override { return false; }
_ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE11is_variadicEv
Line
Count
Source
105
6
    bool is_variadic() const override { return false; }
_ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE11is_variadicEv
Line
Count
Source
105
1
    bool is_variadic() const override { return false; }
106
107
13
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE23get_number_of_argumentsEv
Line
Count
Source
107
8
    size_t get_number_of_arguments() const override { return 2; }
_ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE23get_number_of_argumentsEv
Line
Count
Source
107
5
    size_t get_number_of_arguments() const override { return 2; }
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE23get_number_of_argumentsEv
108
109
26
    bool use_default_implementation_for_nulls() const override { return false; }
_ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE36use_default_implementation_for_nullsEv
Line
Count
Source
109
16
    bool use_default_implementation_for_nulls() const override { return false; }
_ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE36use_default_implementation_for_nullsEv
Line
Count
Source
109
10
    bool use_default_implementation_for_nulls() const override { return false; }
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE36use_default_implementation_for_nullsEv
110
111
26
    Status open(FunctionContext* context, FunctionContext::FunctionStateScope scope) override {
112
26
        if (scope == FunctionContext::THREAD_LOCAL) {
113
13
            return Status::OK();
114
13
        }
115
116
26
        DCHECK(context->get_num_args() >= 1);
117
13
        DCHECK_EQ(context->get_arg_type(0)->get_primitive_type(), PrimitiveType::TYPE_ARRAY);
118
        // now we only support same
119
13
        std::shared_ptr<ParamValue> state = std::make_shared<ParamValue>();
120
13
        Field field;
121
13
        if (context->get_constant_col(1)) {
122
0
            context->get_constant_col(1)->column_ptr->get(0, field);
123
0
            state->value = field;
124
0
            state->type = context->get_arg_type(1)->get_primitive_type();
125
0
            context->set_function_state(scope, state);
126
0
        }
127
13
        return Status::OK();
128
26
    }
_ZN5doris18FunctionArrayIndexINS_19ArrayContainsActionEE4openEPNS_15FunctionContextENS3_18FunctionStateScopeE
Line
Count
Source
111
16
    Status open(FunctionContext* context, FunctionContext::FunctionStateScope scope) override {
112
16
        if (scope == FunctionContext::THREAD_LOCAL) {
113
8
            return Status::OK();
114
8
        }
115
116
16
        DCHECK(context->get_num_args() >= 1);
117
8
        DCHECK_EQ(context->get_arg_type(0)->get_primitive_type(), PrimitiveType::TYPE_ARRAY);
118
        // now we only support same
119
8
        std::shared_ptr<ParamValue> state = std::make_shared<ParamValue>();
120
8
        Field field;
121
8
        if (context->get_constant_col(1)) {
122
0
            context->get_constant_col(1)->column_ptr->get(0, field);
123
0
            state->value = field;
124
0
            state->type = context->get_arg_type(1)->get_primitive_type();
125
0
            context->set_function_state(scope, state);
126
0
        }
127
8
        return Status::OK();
128
16
    }
_ZN5doris18FunctionArrayIndexINS_19ArrayPositionActionEE4openEPNS_15FunctionContextENS3_18FunctionStateScopeE
Line
Count
Source
111
10
    Status open(FunctionContext* context, FunctionContext::FunctionStateScope scope) override {
112
10
        if (scope == FunctionContext::THREAD_LOCAL) {
113
5
            return Status::OK();
114
5
        }
115
116
10
        DCHECK(context->get_num_args() >= 1);
117
5
        DCHECK_EQ(context->get_arg_type(0)->get_primitive_type(), PrimitiveType::TYPE_ARRAY);
118
        // now we only support same
119
5
        std::shared_ptr<ParamValue> state = std::make_shared<ParamValue>();
120
5
        Field field;
121
5
        if (context->get_constant_col(1)) {
122
0
            context->get_constant_col(1)->column_ptr->get(0, field);
123
0
            state->value = field;
124
0
            state->type = context->get_arg_type(1)->get_primitive_type();
125
0
            context->set_function_state(scope, state);
126
0
        }
127
5
        return Status::OK();
128
10
    }
Unexecuted instantiation: _ZN5doris18FunctionArrayIndexINS_15ArrayCountEqualEE4openEPNS_15FunctionContextENS3_18FunctionStateScopeE
129
130
    Status evaluate_inverted_index(
131
            const ColumnsWithTypeAndName& arguments,
132
            const std::vector<IndexFieldNameAndTypePair>& data_type_with_names,
133
            std::vector<segment_v2::IndexIterator*> iterators, uint32_t num_rows,
134
            const InvertedIndexAnalyzerCtx* analyzer_ctx,
135
0
            segment_v2::InvertedIndexResultBitmap& bitmap_result) const override {
136
0
        DCHECK(arguments.size() == 1);
137
0
        DCHECK(data_type_with_names.size() == 1);
138
0
        DCHECK(iterators.size() == 1);
139
0
        auto* iter = iterators[0];
140
0
        auto data_type_with_name = data_type_with_names[0];
141
0
        if (iter == nullptr) {
142
0
            return Status::OK();
143
0
        }
144
0
        if (!segment_v2::IndexReaderHelper::has_string_or_bkd_index(iter)) {
145
            // parser is not none we can not make sure the result is correct in expr combination
146
            // for example, filter: !array_index(array, 'tall:120cm, weight: 35kg')
147
            // here we have rows [tall:120cm, weight: 35kg, hobbies: reading book] which be tokenized
148
            // but query is also tokenized, and FULLTEXT reader will catch this row as matched,
149
            // so array_index(array, 'tall:120cm, weight: 35kg') return this rowid,
150
            // but we expect it to be filtered, because we want row is equal to 'tall:120cm, weight: 35kg'
151
0
            return Status::OK();
152
0
        }
153
0
        Field param_value;
154
0
        arguments[0].column->get(0, param_value);
155
        // The current implementation for the inverted index of arrays cannot handle cases where the array contains null values,
156
        // meaning an item in the array is null.
157
0
        if (param_value.is_null()) {
158
0
            return Status::OK();
159
0
        }
160
161
0
        std::shared_ptr<roaring::Roaring> null_bitmap = std::make_shared<roaring::Roaring>();
162
0
        if (iter->has_null()) {
163
0
            segment_v2::InvertedIndexQueryCacheHandle null_bitmap_cache_handle;
164
0
            RETURN_IF_ERROR(iter->read_null_bitmap(&null_bitmap_cache_handle));
165
0
            null_bitmap = null_bitmap_cache_handle.get_bitmap();
166
0
        }
167
0
        InvertedIndexParam param;
168
0
        param.column_name = data_type_with_name.first;
169
0
        param.column_type = data_type_with_name.second;
170
0
        param.query_value = param_value;
171
0
        param.query_type = segment_v2::InvertedIndexQueryType::EQUAL_QUERY;
172
0
        param.num_rows = num_rows;
173
0
        param.roaring = std::make_shared<roaring::Roaring>();
174
0
        param.analyzer_ctx = analyzer_ctx;
175
0
        RETURN_IF_ERROR(iter->read_from_index(segment_v2::IndexParam {&param}));
176
        // here debug for check array_contains function really filter rows by inverted index correctly
177
0
        DBUG_EXECUTE_IF("array_func.array_contains", {
178
0
            auto result_bitmap = DebugPoints::instance()->get_debug_param_or_default<int32_t>(
179
0
                    "array_func.array_contains", "result_bitmap", 0);
180
0
            if (result_bitmap < 0) {
181
0
                return Status::Error<ErrorCode::INTERNAL_ERROR>(
182
0
                        "result_bitmap count cannot be negative");
183
0
            }
184
0
            if (param.roaring->cardinality() != result_bitmap) {
185
0
                return Status::Error<ErrorCode::INTERNAL_ERROR>(
186
0
                        "array_contains really filtered {} by inverted index not equal to expected "
187
0
                        "{}",
188
0
                        param.roaring->cardinality(), result_bitmap);
189
0
            }
190
0
        })
191
0
        segment_v2::InvertedIndexResultBitmap result(param.roaring, null_bitmap);
192
0
        bitmap_result = result;
193
0
        bitmap_result.mask_out_null();
194
195
0
        return Status::OK();
196
0
    }
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS4_EERKS3_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISK_EES3_IPNS_10segment_v213IndexIteratorESaISR_EEjPKNS_24InvertedIndexAnalyzerCtxERNSP_25InvertedIndexResultBitmapE
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS4_EERKS3_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISK_EES3_IPNS_10segment_v213IndexIteratorESaISR_EEjPKNS_24InvertedIndexAnalyzerCtxERNSP_25InvertedIndexResultBitmapE
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE23evaluate_inverted_indexERKSt6vectorINS_21ColumnWithTypeAndNameESaIS4_EERKS3_ISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIKNS_9IDataTypeEEESaISK_EES3_IPNS_10segment_v213IndexIteratorESaISR_EEjPKNS_24InvertedIndexAnalyzerCtxERNSP_25InvertedIndexResultBitmapE
197
198
13
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
199
13
        if (arguments[0]->is_nullable()) {
200
13
            return make_nullable(
201
13
                    std::make_shared<typename PrimitiveTypeTraits<ResultType>::DataType>());
202
13
        } else {
203
0
            return std::make_shared<typename PrimitiveTypeTraits<ResultType>::DataType>();
204
0
        }
205
13
    }
_ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS7_EE
Line
Count
Source
198
8
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
199
8
        if (arguments[0]->is_nullable()) {
200
8
            return make_nullable(
201
8
                    std::make_shared<typename PrimitiveTypeTraits<ResultType>::DataType>());
202
8
        } else {
203
0
            return std::make_shared<typename PrimitiveTypeTraits<ResultType>::DataType>();
204
0
        }
205
8
    }
_ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS7_EE
Line
Count
Source
198
5
    DataTypePtr get_return_type_impl(const DataTypes& arguments) const override {
199
5
        if (arguments[0]->is_nullable()) {
200
5
            return make_nullable(
201
5
                    std::make_shared<typename PrimitiveTypeTraits<ResultType>::DataType>());
202
5
        } else {
203
0
            return std::make_shared<typename PrimitiveTypeTraits<ResultType>::DataType>();
204
0
        }
205
5
    }
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS7_EE
206
207
    Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments,
208
13
                        uint32_t result, size_t input_rows_count) const override {
209
13
        DBUG_EXECUTE_IF("array_func.array_contains", {
210
13
            auto req_id = DebugPoints::instance()->get_debug_param_or_default<int32_t>(
211
13
                    "array_func.array_contains", "req_id", 0);
212
13
            return Status::Error<ErrorCode::INTERNAL_ERROR>(
213
13
                    "{} has already execute inverted index req_id {} , should not execute expr "
214
13
                    "with rows: {}",
215
13
                    get_name(), req_id, input_rows_count);
216
13
        });
217
13
        return _execute_dispatch(block, arguments, result, input_rows_count);
218
13
    }
_ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
208
8
                        uint32_t result, size_t input_rows_count) const override {
209
8
        DBUG_EXECUTE_IF("array_func.array_contains", {
210
8
            auto req_id = DebugPoints::instance()->get_debug_param_or_default<int32_t>(
211
8
                    "array_func.array_contains", "req_id", 0);
212
8
            return Status::Error<ErrorCode::INTERNAL_ERROR>(
213
8
                    "{} has already execute inverted index req_id {} , should not execute expr "
214
8
                    "with rows: {}",
215
8
                    get_name(), req_id, input_rows_count);
216
8
        });
217
8
        return _execute_dispatch(block, arguments, result, input_rows_count);
218
8
    }
_ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
208
5
                        uint32_t result, size_t input_rows_count) const override {
209
5
        DBUG_EXECUTE_IF("array_func.array_contains", {
210
5
            auto req_id = DebugPoints::instance()->get_debug_param_or_default<int32_t>(
211
5
                    "array_func.array_contains", "req_id", 0);
212
5
            return Status::Error<ErrorCode::INTERNAL_ERROR>(
213
5
                    "{} has already execute inverted index req_id {} , should not execute expr "
214
5
                    "with rows: {}",
215
5
                    get_name(), req_id, input_rows_count);
216
5
        });
217
5
        return _execute_dispatch(block, arguments, result, input_rows_count);
218
5
    }
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm
219
220
private:
221
    ColumnPtr _execute_string(const ColumnArray::Offsets64& offsets, const UInt8* nested_null_map,
222
                              const IColumn& nested_column, const IColumn& right_column,
223
                              const UInt8* right_nested_null_map,
224
2
                              const UInt8* outer_null_map) const {
225
        // check array nested column type and get data
226
2
        const auto& str_offs = reinterpret_cast<const ColumnString&>(nested_column).get_offsets();
227
2
        const auto& str_chars = reinterpret_cast<const ColumnString&>(nested_column).get_chars();
228
229
        // check right column type and get data
230
2
        const auto& right_offs = reinterpret_cast<const ColumnString&>(right_column).get_offsets();
231
2
        const auto& right_chars = reinterpret_cast<const ColumnString&>(right_column).get_chars();
232
233
        // prepare return data
234
2
        auto dst = PrimitiveTypeTraits<ResultType>::ColumnType::create(offsets.size(), 0);
235
2
        auto& dst_data = dst->get_data();
236
2
        auto dst_null_column = ColumnUInt8::create(offsets.size(), 0);
237
2
        auto& dst_null_data = dst_null_column->get_data();
238
239
        // process
240
16
        for (size_t row = 0; row < offsets.size(); ++row) {
241
10
            if (outer_null_map && outer_null_map[row]) {
242
2
                dst_null_data[row] = true;
243
2
                continue;
244
2
            }
245
8
            dst_null_data[row] = false;
246
8
            typename PrimitiveTypeTraits<ResultType>::CppType res = 0;
247
8
            size_t off = offsets[row - 1];
248
8
            size_t len = offsets[row] - off;
249
250
8
            size_t right_off = right_offs[row - 1];
251
8
            size_t right_len = right_offs[row] - right_off;
252
20
            for (size_t pos = 0; pos < len; ++pos) {
253
                // match null value
254
12
                if (right_nested_null_map && right_nested_null_map[row] && nested_null_map &&
255
12
                    nested_null_map[pos + off]) {
256
0
                    ConcreteAction::apply(res, pos);
257
0
                    if constexpr (!ConcreteAction::resume_execution) {
258
0
                        break;
259
0
                    }
260
0
                }
261
                // some is null while another is not
262
12
                if (right_nested_null_map && nested_null_map &&
263
12
                    right_nested_null_map[row] != nested_null_map[pos + off]) {
264
0
                    continue;
265
0
                }
266
12
                if (nested_null_map && nested_null_map[pos + off]) {
267
0
                    continue;
268
0
                }
269
12
                size_t str_pos = str_offs[pos + off - 1];
270
12
                size_t str_len = str_offs[pos + off] - str_pos;
271
12
                const char* left_raw_v = reinterpret_cast<const char*>(&str_chars[str_pos]);
272
12
                const char* right_raw_v = reinterpret_cast<const char*>(&right_chars[right_off]);
273
                // StringRef operator == using vec impl
274
12
                if (StringRef(left_raw_v, str_len) == StringRef(right_raw_v, right_len)) {
275
4
                    ConcreteAction::apply(res, pos);
276
4
                    if constexpr (!ConcreteAction::resume_execution) {
277
4
                        break;
278
4
                    }
279
4
                }
280
12
            }
281
12
            dst_data[row] = res;
282
12
        }
283
284
6
        if (outer_null_map == nullptr) {
285
0
            return dst;
286
0
        }
287
6
        return ColumnNullable::create(std::move(dst), std::move(dst_null_column));
288
6
    }
_ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE15_execute_stringERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKNS_7IColumnESE_SB_SB_
Line
Count
Source
224
1
                              const UInt8* outer_null_map) const {
225
        // check array nested column type and get data
226
1
        const auto& str_offs = reinterpret_cast<const ColumnString&>(nested_column).get_offsets();
227
1
        const auto& str_chars = reinterpret_cast<const ColumnString&>(nested_column).get_chars();
228
229
        // check right column type and get data
230
1
        const auto& right_offs = reinterpret_cast<const ColumnString&>(right_column).get_offsets();
231
1
        const auto& right_chars = reinterpret_cast<const ColumnString&>(right_column).get_chars();
232
233
        // prepare return data
234
1
        auto dst = PrimitiveTypeTraits<ResultType>::ColumnType::create(offsets.size(), 0);
235
1
        auto& dst_data = dst->get_data();
236
1
        auto dst_null_column = ColumnUInt8::create(offsets.size(), 0);
237
1
        auto& dst_null_data = dst_null_column->get_data();
238
239
        // process
240
8
        for (size_t row = 0; row < offsets.size(); ++row) {
241
5
            if (outer_null_map && outer_null_map[row]) {
242
1
                dst_null_data[row] = true;
243
1
                continue;
244
1
            }
245
4
            dst_null_data[row] = false;
246
4
            typename PrimitiveTypeTraits<ResultType>::CppType res = 0;
247
4
            size_t off = offsets[row - 1];
248
4
            size_t len = offsets[row] - off;
249
250
4
            size_t right_off = right_offs[row - 1];
251
4
            size_t right_len = right_offs[row] - right_off;
252
10
            for (size_t pos = 0; pos < len; ++pos) {
253
                // match null value
254
6
                if (right_nested_null_map && right_nested_null_map[row] && nested_null_map &&
255
6
                    nested_null_map[pos + off]) {
256
0
                    ConcreteAction::apply(res, pos);
257
0
                    if constexpr (!ConcreteAction::resume_execution) {
258
0
                        break;
259
0
                    }
260
0
                }
261
                // some is null while another is not
262
6
                if (right_nested_null_map && nested_null_map &&
263
6
                    right_nested_null_map[row] != nested_null_map[pos + off]) {
264
0
                    continue;
265
0
                }
266
6
                if (nested_null_map && nested_null_map[pos + off]) {
267
0
                    continue;
268
0
                }
269
6
                size_t str_pos = str_offs[pos + off - 1];
270
6
                size_t str_len = str_offs[pos + off] - str_pos;
271
6
                const char* left_raw_v = reinterpret_cast<const char*>(&str_chars[str_pos]);
272
6
                const char* right_raw_v = reinterpret_cast<const char*>(&right_chars[right_off]);
273
                // StringRef operator == using vec impl
274
6
                if (StringRef(left_raw_v, str_len) == StringRef(right_raw_v, right_len)) {
275
2
                    ConcreteAction::apply(res, pos);
276
2
                    if constexpr (!ConcreteAction::resume_execution) {
277
2
                        break;
278
2
                    }
279
2
                }
280
6
            }
281
6
            dst_data[row] = res;
282
6
        }
283
284
3
        if (outer_null_map == nullptr) {
285
0
            return dst;
286
0
        }
287
3
        return ColumnNullable::create(std::move(dst), std::move(dst_null_column));
288
3
    }
_ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE15_execute_stringERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKNS_7IColumnESE_SB_SB_
Line
Count
Source
224
1
                              const UInt8* outer_null_map) const {
225
        // check array nested column type and get data
226
1
        const auto& str_offs = reinterpret_cast<const ColumnString&>(nested_column).get_offsets();
227
1
        const auto& str_chars = reinterpret_cast<const ColumnString&>(nested_column).get_chars();
228
229
        // check right column type and get data
230
1
        const auto& right_offs = reinterpret_cast<const ColumnString&>(right_column).get_offsets();
231
1
        const auto& right_chars = reinterpret_cast<const ColumnString&>(right_column).get_chars();
232
233
        // prepare return data
234
1
        auto dst = PrimitiveTypeTraits<ResultType>::ColumnType::create(offsets.size(), 0);
235
1
        auto& dst_data = dst->get_data();
236
1
        auto dst_null_column = ColumnUInt8::create(offsets.size(), 0);
237
1
        auto& dst_null_data = dst_null_column->get_data();
238
239
        // process
240
8
        for (size_t row = 0; row < offsets.size(); ++row) {
241
5
            if (outer_null_map && outer_null_map[row]) {
242
1
                dst_null_data[row] = true;
243
1
                continue;
244
1
            }
245
4
            dst_null_data[row] = false;
246
4
            typename PrimitiveTypeTraits<ResultType>::CppType res = 0;
247
4
            size_t off = offsets[row - 1];
248
4
            size_t len = offsets[row] - off;
249
250
4
            size_t right_off = right_offs[row - 1];
251
4
            size_t right_len = right_offs[row] - right_off;
252
10
            for (size_t pos = 0; pos < len; ++pos) {
253
                // match null value
254
6
                if (right_nested_null_map && right_nested_null_map[row] && nested_null_map &&
255
6
                    nested_null_map[pos + off]) {
256
0
                    ConcreteAction::apply(res, pos);
257
0
                    if constexpr (!ConcreteAction::resume_execution) {
258
0
                        break;
259
0
                    }
260
0
                }
261
                // some is null while another is not
262
6
                if (right_nested_null_map && nested_null_map &&
263
6
                    right_nested_null_map[row] != nested_null_map[pos + off]) {
264
0
                    continue;
265
0
                }
266
6
                if (nested_null_map && nested_null_map[pos + off]) {
267
0
                    continue;
268
0
                }
269
6
                size_t str_pos = str_offs[pos + off - 1];
270
6
                size_t str_len = str_offs[pos + off] - str_pos;
271
6
                const char* left_raw_v = reinterpret_cast<const char*>(&str_chars[str_pos]);
272
6
                const char* right_raw_v = reinterpret_cast<const char*>(&right_chars[right_off]);
273
                // StringRef operator == using vec impl
274
6
                if (StringRef(left_raw_v, str_len) == StringRef(right_raw_v, right_len)) {
275
2
                    ConcreteAction::apply(res, pos);
276
2
                    if constexpr (!ConcreteAction::resume_execution) {
277
2
                        break;
278
2
                    }
279
2
                }
280
6
            }
281
6
            dst_data[row] = res;
282
6
        }
283
284
3
        if (outer_null_map == nullptr) {
285
0
            return dst;
286
0
        }
287
3
        return ColumnNullable::create(std::move(dst), std::move(dst_null_column));
288
3
    }
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE15_execute_stringERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKNS_7IColumnESE_SB_SB_
289
290
    template <typename NestedColumnType, typename RightColumnType>
291
    ColumnPtr _execute_number(const ColumnArray::Offsets64& offsets, const UInt8* nested_null_map,
292
                              const IColumn& nested_column, const IColumn& right_column,
293
                              const UInt8* right_nested_null_map,
294
11
                              const UInt8* outer_null_map) const {
295
        // check array nested column type and get data
296
11
        const auto& nested_data =
297
11
                reinterpret_cast<const NestedColumnType&>(nested_column).get_data();
298
299
        // check right column type and get data
300
11
        const auto& right_data = reinterpret_cast<const RightColumnType&>(right_column).get_data();
301
302
        // prepare return data
303
11
        auto dst = PrimitiveTypeTraits<ResultType>::ColumnType::create(offsets.size(), 0);
304
11
        auto& dst_data = dst->get_data();
305
11
        auto dst_null_column = ColumnUInt8::create(offsets.size(), 0);
306
11
        auto& dst_null_data = dst_null_column->get_data();
307
308
        // process
309
68
        for (size_t row = 0; row < offsets.size(); ++row) {
310
44
            if (outer_null_map && outer_null_map[row]) {
311
11
                dst_null_data[row] = true;
312
11
                continue;
313
11
            }
314
33
            dst_null_data[row] = false;
315
33
            typename PrimitiveTypeTraits<ResultType>::CppType res = 0;
316
33
            size_t off = offsets[row - 1];
317
33
            size_t len = offsets[row] - off;
318
87
            for (size_t pos = 0; pos < len; ++pos) {
319
                // match null value
320
54
                if (right_nested_null_map && right_nested_null_map[row] && nested_null_map &&
321
54
                    nested_null_map[pos + off]) {
322
0
                    ConcreteAction::apply(res, pos);
323
0
                    if constexpr (!ConcreteAction::resume_execution) {
324
0
                        break;
325
0
                    }
326
0
                }
327
                // some is null while another is not
328
54
                if (right_nested_null_map && nested_null_map &&
329
54
                    right_nested_null_map[row] != nested_null_map[pos + off]) {
330
0
                    continue;
331
0
                }
332
54
                if (nested_null_map && nested_null_map[pos + off]) {
333
0
                    continue;
334
0
                }
335
54
                if (nested_data[pos + off] == right_data[row]) {
336
13
                    ConcreteAction::apply(res, pos);
337
13
                    if constexpr (!ConcreteAction::resume_execution) {
338
13
                        break;
339
13
                    }
340
13
                }
341
54
            }
342
46
            dst_data[row] = res;
343
46
        }
344
345
24
        if (outer_null_map == nullptr) {
346
0
            return dst;
347
0
        }
348
24
        return ColumnNullable::create(std::move(dst), std::move(dst_null_column));
349
24
    }
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE2EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
_ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE3EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Line
Count
Source
294
1
                              const UInt8* outer_null_map) const {
295
        // check array nested column type and get data
296
1
        const auto& nested_data =
297
1
                reinterpret_cast<const NestedColumnType&>(nested_column).get_data();
298
299
        // check right column type and get data
300
1
        const auto& right_data = reinterpret_cast<const RightColumnType&>(right_column).get_data();
301
302
        // prepare return data
303
1
        auto dst = PrimitiveTypeTraits<ResultType>::ColumnType::create(offsets.size(), 0);
304
1
        auto& dst_data = dst->get_data();
305
1
        auto dst_null_column = ColumnUInt8::create(offsets.size(), 0);
306
1
        auto& dst_null_data = dst_null_column->get_data();
307
308
        // process
309
6
        for (size_t row = 0; row < offsets.size(); ++row) {
310
4
            if (outer_null_map && outer_null_map[row]) {
311
1
                dst_null_data[row] = true;
312
1
                continue;
313
1
            }
314
3
            dst_null_data[row] = false;
315
3
            typename PrimitiveTypeTraits<ResultType>::CppType res = 0;
316
3
            size_t off = offsets[row - 1];
317
3
            size_t len = offsets[row] - off;
318
8
            for (size_t pos = 0; pos < len; ++pos) {
319
                // match null value
320
5
                if (right_nested_null_map && right_nested_null_map[row] && nested_null_map &&
321
5
                    nested_null_map[pos + off]) {
322
0
                    ConcreteAction::apply(res, pos);
323
0
                    if constexpr (!ConcreteAction::resume_execution) {
324
0
                        break;
325
0
                    }
326
0
                }
327
                // some is null while another is not
328
5
                if (right_nested_null_map && nested_null_map &&
329
5
                    right_nested_null_map[row] != nested_null_map[pos + off]) {
330
0
                    continue;
331
0
                }
332
5
                if (nested_null_map && nested_null_map[pos + off]) {
333
0
                    continue;
334
0
                }
335
5
                if (nested_data[pos + off] == right_data[row]) {
336
1
                    ConcreteAction::apply(res, pos);
337
1
                    if constexpr (!ConcreteAction::resume_execution) {
338
1
                        break;
339
1
                    }
340
1
                }
341
5
            }
342
4
            dst_data[row] = res;
343
4
        }
344
345
2
        if (outer_null_map == nullptr) {
346
0
            return dst;
347
0
        }
348
2
        return ColumnNullable::create(std::move(dst), std::move(dst_null_column));
349
2
    }
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE4EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
_ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE5EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Line
Count
Source
294
1
                              const UInt8* outer_null_map) const {
295
        // check array nested column type and get data
296
1
        const auto& nested_data =
297
1
                reinterpret_cast<const NestedColumnType&>(nested_column).get_data();
298
299
        // check right column type and get data
300
1
        const auto& right_data = reinterpret_cast<const RightColumnType&>(right_column).get_data();
301
302
        // prepare return data
303
1
        auto dst = PrimitiveTypeTraits<ResultType>::ColumnType::create(offsets.size(), 0);
304
1
        auto& dst_data = dst->get_data();
305
1
        auto dst_null_column = ColumnUInt8::create(offsets.size(), 0);
306
1
        auto& dst_null_data = dst_null_column->get_data();
307
308
        // process
309
6
        for (size_t row = 0; row < offsets.size(); ++row) {
310
4
            if (outer_null_map && outer_null_map[row]) {
311
1
                dst_null_data[row] = true;
312
1
                continue;
313
1
            }
314
3
            dst_null_data[row] = false;
315
3
            typename PrimitiveTypeTraits<ResultType>::CppType res = 0;
316
3
            size_t off = offsets[row - 1];
317
3
            size_t len = offsets[row] - off;
318
8
            for (size_t pos = 0; pos < len; ++pos) {
319
                // match null value
320
5
                if (right_nested_null_map && right_nested_null_map[row] && nested_null_map &&
321
5
                    nested_null_map[pos + off]) {
322
0
                    ConcreteAction::apply(res, pos);
323
0
                    if constexpr (!ConcreteAction::resume_execution) {
324
0
                        break;
325
0
                    }
326
0
                }
327
                // some is null while another is not
328
5
                if (right_nested_null_map && nested_null_map &&
329
5
                    right_nested_null_map[row] != nested_null_map[pos + off]) {
330
0
                    continue;
331
0
                }
332
5
                if (nested_null_map && nested_null_map[pos + off]) {
333
0
                    continue;
334
0
                }
335
5
                if (nested_data[pos + off] == right_data[row]) {
336
1
                    ConcreteAction::apply(res, pos);
337
1
                    if constexpr (!ConcreteAction::resume_execution) {
338
1
                        break;
339
1
                    }
340
1
                }
341
5
            }
342
4
            dst_data[row] = res;
343
4
        }
344
345
2
        if (outer_null_map == nullptr) {
346
0
            return dst;
347
0
        }
348
2
        return ColumnNullable::create(std::move(dst), std::move(dst_null_column));
349
2
    }
_ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE6EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Line
Count
Source
294
1
                              const UInt8* outer_null_map) const {
295
        // check array nested column type and get data
296
1
        const auto& nested_data =
297
1
                reinterpret_cast<const NestedColumnType&>(nested_column).get_data();
298
299
        // check right column type and get data
300
1
        const auto& right_data = reinterpret_cast<const RightColumnType&>(right_column).get_data();
301
302
        // prepare return data
303
1
        auto dst = PrimitiveTypeTraits<ResultType>::ColumnType::create(offsets.size(), 0);
304
1
        auto& dst_data = dst->get_data();
305
1
        auto dst_null_column = ColumnUInt8::create(offsets.size(), 0);
306
1
        auto& dst_null_data = dst_null_column->get_data();
307
308
        // process
309
6
        for (size_t row = 0; row < offsets.size(); ++row) {
310
4
            if (outer_null_map && outer_null_map[row]) {
311
1
                dst_null_data[row] = true;
312
1
                continue;
313
1
            }
314
3
            dst_null_data[row] = false;
315
3
            typename PrimitiveTypeTraits<ResultType>::CppType res = 0;
316
3
            size_t off = offsets[row - 1];
317
3
            size_t len = offsets[row] - off;
318
8
            for (size_t pos = 0; pos < len; ++pos) {
319
                // match null value
320
5
                if (right_nested_null_map && right_nested_null_map[row] && nested_null_map &&
321
5
                    nested_null_map[pos + off]) {
322
0
                    ConcreteAction::apply(res, pos);
323
0
                    if constexpr (!ConcreteAction::resume_execution) {
324
0
                        break;
325
0
                    }
326
0
                }
327
                // some is null while another is not
328
5
                if (right_nested_null_map && nested_null_map &&
329
5
                    right_nested_null_map[row] != nested_null_map[pos + off]) {
330
0
                    continue;
331
0
                }
332
5
                if (nested_null_map && nested_null_map[pos + off]) {
333
0
                    continue;
334
0
                }
335
5
                if (nested_data[pos + off] == right_data[row]) {
336
1
                    ConcreteAction::apply(res, pos);
337
1
                    if constexpr (!ConcreteAction::resume_execution) {
338
1
                        break;
339
1
                    }
340
1
                }
341
5
            }
342
4
            dst_data[row] = res;
343
4
        }
344
345
2
        if (outer_null_map == nullptr) {
346
0
            return dst;
347
0
        }
348
2
        return ColumnNullable::create(std::move(dst), std::move(dst_null_column));
349
2
    }
_ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE7EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Line
Count
Source
294
1
                              const UInt8* outer_null_map) const {
295
        // check array nested column type and get data
296
1
        const auto& nested_data =
297
1
                reinterpret_cast<const NestedColumnType&>(nested_column).get_data();
298
299
        // check right column type and get data
300
1
        const auto& right_data = reinterpret_cast<const RightColumnType&>(right_column).get_data();
301
302
        // prepare return data
303
1
        auto dst = PrimitiveTypeTraits<ResultType>::ColumnType::create(offsets.size(), 0);
304
1
        auto& dst_data = dst->get_data();
305
1
        auto dst_null_column = ColumnUInt8::create(offsets.size(), 0);
306
1
        auto& dst_null_data = dst_null_column->get_data();
307
308
        // process
309
6
        for (size_t row = 0; row < offsets.size(); ++row) {
310
4
            if (outer_null_map && outer_null_map[row]) {
311
1
                dst_null_data[row] = true;
312
1
                continue;
313
1
            }
314
3
            dst_null_data[row] = false;
315
3
            typename PrimitiveTypeTraits<ResultType>::CppType res = 0;
316
3
            size_t off = offsets[row - 1];
317
3
            size_t len = offsets[row] - off;
318
7
            for (size_t pos = 0; pos < len; ++pos) {
319
                // match null value
320
4
                if (right_nested_null_map && right_nested_null_map[row] && nested_null_map &&
321
4
                    nested_null_map[pos + off]) {
322
0
                    ConcreteAction::apply(res, pos);
323
0
                    if constexpr (!ConcreteAction::resume_execution) {
324
0
                        break;
325
0
                    }
326
0
                }
327
                // some is null while another is not
328
4
                if (right_nested_null_map && nested_null_map &&
329
4
                    right_nested_null_map[row] != nested_null_map[pos + off]) {
330
0
                    continue;
331
0
                }
332
4
                if (nested_null_map && nested_null_map[pos + off]) {
333
0
                    continue;
334
0
                }
335
4
                if (nested_data[pos + off] == right_data[row]) {
336
1
                    ConcreteAction::apply(res, pos);
337
1
                    if constexpr (!ConcreteAction::resume_execution) {
338
1
                        break;
339
1
                    }
340
1
                }
341
4
            }
342
4
            dst_data[row] = res;
343
4
        }
344
345
2
        if (outer_null_map == nullptr) {
346
0
            return dst;
347
0
        }
348
2
        return ColumnNullable::create(std::move(dst), std::move(dst_null_column));
349
2
    }
_ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE8EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Line
Count
Source
294
1
                              const UInt8* outer_null_map) const {
295
        // check array nested column type and get data
296
1
        const auto& nested_data =
297
1
                reinterpret_cast<const NestedColumnType&>(nested_column).get_data();
298
299
        // check right column type and get data
300
1
        const auto& right_data = reinterpret_cast<const RightColumnType&>(right_column).get_data();
301
302
        // prepare return data
303
1
        auto dst = PrimitiveTypeTraits<ResultType>::ColumnType::create(offsets.size(), 0);
304
1
        auto& dst_data = dst->get_data();
305
1
        auto dst_null_column = ColumnUInt8::create(offsets.size(), 0);
306
1
        auto& dst_null_data = dst_null_column->get_data();
307
308
        // process
309
6
        for (size_t row = 0; row < offsets.size(); ++row) {
310
4
            if (outer_null_map && outer_null_map[row]) {
311
1
                dst_null_data[row] = true;
312
1
                continue;
313
1
            }
314
3
            dst_null_data[row] = false;
315
3
            typename PrimitiveTypeTraits<ResultType>::CppType res = 0;
316
3
            size_t off = offsets[row - 1];
317
3
            size_t len = offsets[row] - off;
318
8
            for (size_t pos = 0; pos < len; ++pos) {
319
                // match null value
320
5
                if (right_nested_null_map && right_nested_null_map[row] && nested_null_map &&
321
5
                    nested_null_map[pos + off]) {
322
0
                    ConcreteAction::apply(res, pos);
323
0
                    if constexpr (!ConcreteAction::resume_execution) {
324
0
                        break;
325
0
                    }
326
0
                }
327
                // some is null while another is not
328
5
                if (right_nested_null_map && nested_null_map &&
329
5
                    right_nested_null_map[row] != nested_null_map[pos + off]) {
330
0
                    continue;
331
0
                }
332
5
                if (nested_null_map && nested_null_map[pos + off]) {
333
0
                    continue;
334
0
                }
335
5
                if (nested_data[pos + off] == right_data[row]) {
336
1
                    ConcreteAction::apply(res, pos);
337
1
                    if constexpr (!ConcreteAction::resume_execution) {
338
1
                        break;
339
1
                    }
340
1
                }
341
5
            }
342
4
            dst_data[row] = res;
343
4
        }
344
345
2
        if (outer_null_map == nullptr) {
346
0
            return dst;
347
0
        }
348
2
        return ColumnNullable::create(std::move(dst), std::move(dst_null_column));
349
2
    }
_ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE9EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Line
Count
Source
294
1
                              const UInt8* outer_null_map) const {
295
        // check array nested column type and get data
296
1
        const auto& nested_data =
297
1
                reinterpret_cast<const NestedColumnType&>(nested_column).get_data();
298
299
        // check right column type and get data
300
1
        const auto& right_data = reinterpret_cast<const RightColumnType&>(right_column).get_data();
301
302
        // prepare return data
303
1
        auto dst = PrimitiveTypeTraits<ResultType>::ColumnType::create(offsets.size(), 0);
304
1
        auto& dst_data = dst->get_data();
305
1
        auto dst_null_column = ColumnUInt8::create(offsets.size(), 0);
306
1
        auto& dst_null_data = dst_null_column->get_data();
307
308
        // process
309
6
        for (size_t row = 0; row < offsets.size(); ++row) {
310
4
            if (outer_null_map && outer_null_map[row]) {
311
1
                dst_null_data[row] = true;
312
1
                continue;
313
1
            }
314
3
            dst_null_data[row] = false;
315
3
            typename PrimitiveTypeTraits<ResultType>::CppType res = 0;
316
3
            size_t off = offsets[row - 1];
317
3
            size_t len = offsets[row] - off;
318
8
            for (size_t pos = 0; pos < len; ++pos) {
319
                // match null value
320
5
                if (right_nested_null_map && right_nested_null_map[row] && nested_null_map &&
321
5
                    nested_null_map[pos + off]) {
322
0
                    ConcreteAction::apply(res, pos);
323
0
                    if constexpr (!ConcreteAction::resume_execution) {
324
0
                        break;
325
0
                    }
326
0
                }
327
                // some is null while another is not
328
5
                if (right_nested_null_map && nested_null_map &&
329
5
                    right_nested_null_map[row] != nested_null_map[pos + off]) {
330
0
                    continue;
331
0
                }
332
5
                if (nested_null_map && nested_null_map[pos + off]) {
333
0
                    continue;
334
0
                }
335
5
                if (nested_data[pos + off] == right_data[row]) {
336
1
                    ConcreteAction::apply(res, pos);
337
1
                    if constexpr (!ConcreteAction::resume_execution) {
338
1
                        break;
339
1
                    }
340
1
                }
341
5
            }
342
4
            dst_data[row] = res;
343
4
        }
344
345
2
        if (outer_null_map == nullptr) {
346
0
            return dst;
347
0
        }
348
2
        return ColumnNullable::create(std::move(dst), std::move(dst_null_column));
349
2
    }
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE15_execute_numberINS_13ColumnDecimalILNS_13PrimitiveTypeE28EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE15_execute_numberINS_13ColumnDecimalILNS_13PrimitiveTypeE29EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
_ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE15_execute_numberINS_13ColumnDecimalILNS_13PrimitiveTypeE20EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Line
Count
Source
294
1
                              const UInt8* outer_null_map) const {
295
        // check array nested column type and get data
296
1
        const auto& nested_data =
297
1
                reinterpret_cast<const NestedColumnType&>(nested_column).get_data();
298
299
        // check right column type and get data
300
1
        const auto& right_data = reinterpret_cast<const RightColumnType&>(right_column).get_data();
301
302
        // prepare return data
303
1
        auto dst = PrimitiveTypeTraits<ResultType>::ColumnType::create(offsets.size(), 0);
304
1
        auto& dst_data = dst->get_data();
305
1
        auto dst_null_column = ColumnUInt8::create(offsets.size(), 0);
306
1
        auto& dst_null_data = dst_null_column->get_data();
307
308
        // process
309
7
        for (size_t row = 0; row < offsets.size(); ++row) {
310
4
            if (outer_null_map && outer_null_map[row]) {
311
1
                dst_null_data[row] = true;
312
1
                continue;
313
1
            }
314
3
            dst_null_data[row] = false;
315
3
            typename PrimitiveTypeTraits<ResultType>::CppType res = 0;
316
3
            size_t off = offsets[row - 1];
317
3
            size_t len = offsets[row] - off;
318
8
            for (size_t pos = 0; pos < len; ++pos) {
319
                // match null value
320
5
                if (right_nested_null_map && right_nested_null_map[row] && nested_null_map &&
321
5
                    nested_null_map[pos + off]) {
322
0
                    ConcreteAction::apply(res, pos);
323
0
                    if constexpr (!ConcreteAction::resume_execution) {
324
0
                        break;
325
0
                    }
326
0
                }
327
                // some is null while another is not
328
5
                if (right_nested_null_map && nested_null_map &&
329
5
                    right_nested_null_map[row] != nested_null_map[pos + off]) {
330
0
                    continue;
331
0
                }
332
5
                if (nested_null_map && nested_null_map[pos + off]) {
333
0
                    continue;
334
0
                }
335
5
                if (nested_data[pos + off] == right_data[row]) {
336
2
                    ConcreteAction::apply(res, pos);
337
2
                    if constexpr (!ConcreteAction::resume_execution) {
338
2
                        break;
339
2
                    }
340
2
                }
341
5
            }
342
5
            dst_data[row] = res;
343
5
        }
344
345
3
        if (outer_null_map == nullptr) {
346
0
            return dst;
347
0
        }
348
3
        return ColumnNullable::create(std::move(dst), std::move(dst_null_column));
349
3
    }
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE15_execute_numberINS_13ColumnDecimalILNS_13PrimitiveTypeE30EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE15_execute_numberINS_13ColumnDecimalILNS_13PrimitiveTypeE35EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE11EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE25EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE26EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE12EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE27EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE42EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE36EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE37EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE2EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
_ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE3EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Line
Count
Source
294
1
                              const UInt8* outer_null_map) const {
295
        // check array nested column type and get data
296
1
        const auto& nested_data =
297
1
                reinterpret_cast<const NestedColumnType&>(nested_column).get_data();
298
299
        // check right column type and get data
300
1
        const auto& right_data = reinterpret_cast<const RightColumnType&>(right_column).get_data();
301
302
        // prepare return data
303
1
        auto dst = PrimitiveTypeTraits<ResultType>::ColumnType::create(offsets.size(), 0);
304
1
        auto& dst_data = dst->get_data();
305
1
        auto dst_null_column = ColumnUInt8::create(offsets.size(), 0);
306
1
        auto& dst_null_data = dst_null_column->get_data();
307
308
        // process
309
6
        for (size_t row = 0; row < offsets.size(); ++row) {
310
4
            if (outer_null_map && outer_null_map[row]) {
311
1
                dst_null_data[row] = true;
312
1
                continue;
313
1
            }
314
3
            dst_null_data[row] = false;
315
3
            typename PrimitiveTypeTraits<ResultType>::CppType res = 0;
316
3
            size_t off = offsets[row - 1];
317
3
            size_t len = offsets[row] - off;
318
8
            for (size_t pos = 0; pos < len; ++pos) {
319
                // match null value
320
5
                if (right_nested_null_map && right_nested_null_map[row] && nested_null_map &&
321
5
                    nested_null_map[pos + off]) {
322
0
                    ConcreteAction::apply(res, pos);
323
0
                    if constexpr (!ConcreteAction::resume_execution) {
324
0
                        break;
325
0
                    }
326
0
                }
327
                // some is null while another is not
328
5
                if (right_nested_null_map && nested_null_map &&
329
5
                    right_nested_null_map[row] != nested_null_map[pos + off]) {
330
0
                    continue;
331
0
                }
332
5
                if (nested_null_map && nested_null_map[pos + off]) {
333
0
                    continue;
334
0
                }
335
5
                if (nested_data[pos + off] == right_data[row]) {
336
1
                    ConcreteAction::apply(res, pos);
337
1
                    if constexpr (!ConcreteAction::resume_execution) {
338
1
                        break;
339
1
                    }
340
1
                }
341
5
            }
342
4
            dst_data[row] = res;
343
4
        }
344
345
2
        if (outer_null_map == nullptr) {
346
0
            return dst;
347
0
        }
348
2
        return ColumnNullable::create(std::move(dst), std::move(dst_null_column));
349
2
    }
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE4EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
_ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE5EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Line
Count
Source
294
2
                              const UInt8* outer_null_map) const {
295
        // check array nested column type and get data
296
2
        const auto& nested_data =
297
2
                reinterpret_cast<const NestedColumnType&>(nested_column).get_data();
298
299
        // check right column type and get data
300
2
        const auto& right_data = reinterpret_cast<const RightColumnType&>(right_column).get_data();
301
302
        // prepare return data
303
2
        auto dst = PrimitiveTypeTraits<ResultType>::ColumnType::create(offsets.size(), 0);
304
2
        auto& dst_data = dst->get_data();
305
2
        auto dst_null_column = ColumnUInt8::create(offsets.size(), 0);
306
2
        auto& dst_null_data = dst_null_column->get_data();
307
308
        // process
309
12
        for (size_t row = 0; row < offsets.size(); ++row) {
310
8
            if (outer_null_map && outer_null_map[row]) {
311
2
                dst_null_data[row] = true;
312
2
                continue;
313
2
            }
314
6
            dst_null_data[row] = false;
315
6
            typename PrimitiveTypeTraits<ResultType>::CppType res = 0;
316
6
            size_t off = offsets[row - 1];
317
6
            size_t len = offsets[row] - off;
318
16
            for (size_t pos = 0; pos < len; ++pos) {
319
                // match null value
320
10
                if (right_nested_null_map && right_nested_null_map[row] && nested_null_map &&
321
10
                    nested_null_map[pos + off]) {
322
0
                    ConcreteAction::apply(res, pos);
323
0
                    if constexpr (!ConcreteAction::resume_execution) {
324
0
                        break;
325
0
                    }
326
0
                }
327
                // some is null while another is not
328
10
                if (right_nested_null_map && nested_null_map &&
329
10
                    right_nested_null_map[row] != nested_null_map[pos + off]) {
330
0
                    continue;
331
0
                }
332
10
                if (nested_null_map && nested_null_map[pos + off]) {
333
0
                    continue;
334
0
                }
335
10
                if (nested_data[pos + off] == right_data[row]) {
336
2
                    ConcreteAction::apply(res, pos);
337
2
                    if constexpr (!ConcreteAction::resume_execution) {
338
2
                        break;
339
2
                    }
340
2
                }
341
10
            }
342
8
            dst_data[row] = res;
343
8
        }
344
345
4
        if (outer_null_map == nullptr) {
346
0
            return dst;
347
0
        }
348
4
        return ColumnNullable::create(std::move(dst), std::move(dst_null_column));
349
4
    }
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE6EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE7EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE8EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE9EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE15_execute_numberINS_13ColumnDecimalILNS_13PrimitiveTypeE28EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE15_execute_numberINS_13ColumnDecimalILNS_13PrimitiveTypeE29EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
_ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE15_execute_numberINS_13ColumnDecimalILNS_13PrimitiveTypeE20EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Line
Count
Source
294
1
                              const UInt8* outer_null_map) const {
295
        // check array nested column type and get data
296
1
        const auto& nested_data =
297
1
                reinterpret_cast<const NestedColumnType&>(nested_column).get_data();
298
299
        // check right column type and get data
300
1
        const auto& right_data = reinterpret_cast<const RightColumnType&>(right_column).get_data();
301
302
        // prepare return data
303
1
        auto dst = PrimitiveTypeTraits<ResultType>::ColumnType::create(offsets.size(), 0);
304
1
        auto& dst_data = dst->get_data();
305
1
        auto dst_null_column = ColumnUInt8::create(offsets.size(), 0);
306
1
        auto& dst_null_data = dst_null_column->get_data();
307
308
        // process
309
7
        for (size_t row = 0; row < offsets.size(); ++row) {
310
4
            if (outer_null_map && outer_null_map[row]) {
311
1
                dst_null_data[row] = true;
312
1
                continue;
313
1
            }
314
3
            dst_null_data[row] = false;
315
3
            typename PrimitiveTypeTraits<ResultType>::CppType res = 0;
316
3
            size_t off = offsets[row - 1];
317
3
            size_t len = offsets[row] - off;
318
8
            for (size_t pos = 0; pos < len; ++pos) {
319
                // match null value
320
5
                if (right_nested_null_map && right_nested_null_map[row] && nested_null_map &&
321
5
                    nested_null_map[pos + off]) {
322
0
                    ConcreteAction::apply(res, pos);
323
0
                    if constexpr (!ConcreteAction::resume_execution) {
324
0
                        break;
325
0
                    }
326
0
                }
327
                // some is null while another is not
328
5
                if (right_nested_null_map && nested_null_map &&
329
5
                    right_nested_null_map[row] != nested_null_map[pos + off]) {
330
0
                    continue;
331
0
                }
332
5
                if (nested_null_map && nested_null_map[pos + off]) {
333
0
                    continue;
334
0
                }
335
5
                if (nested_data[pos + off] == right_data[row]) {
336
2
                    ConcreteAction::apply(res, pos);
337
2
                    if constexpr (!ConcreteAction::resume_execution) {
338
2
                        break;
339
2
                    }
340
2
                }
341
5
            }
342
5
            dst_data[row] = res;
343
5
        }
344
345
3
        if (outer_null_map == nullptr) {
346
0
            return dst;
347
0
        }
348
3
        return ColumnNullable::create(std::move(dst), std::move(dst_null_column));
349
3
    }
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE15_execute_numberINS_13ColumnDecimalILNS_13PrimitiveTypeE30EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE15_execute_numberINS_13ColumnDecimalILNS_13PrimitiveTypeE35EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE11EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE25EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE26EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE12EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE27EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE42EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE36EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE37EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE2EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE3EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE4EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE5EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE6EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE7EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE8EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE9EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE15_execute_numberINS_13ColumnDecimalILNS_13PrimitiveTypeE28EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE15_execute_numberINS_13ColumnDecimalILNS_13PrimitiveTypeE29EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE15_execute_numberINS_13ColumnDecimalILNS_13PrimitiveTypeE20EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE15_execute_numberINS_13ColumnDecimalILNS_13PrimitiveTypeE30EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE15_execute_numberINS_13ColumnDecimalILNS_13PrimitiveTypeE35EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE11EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE25EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE26EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE12EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE27EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE42EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE36EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE15_execute_numberINS_12ColumnVectorILNS_13PrimitiveTypeE37EEES6_EENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
350
351
    template <typename NestedColumnType>
352
    ColumnPtr _execute_number_expanded(const ColumnArray::Offsets64& offsets,
353
                                       const UInt8* nested_null_map, const IColumn& nested_column,
354
                                       const IColumn& right_column,
355
                                       const UInt8* right_nested_null_map,
356
11
                                       const UInt8* outer_null_map) const {
357
11
        if (is_column<NestedColumnType>(right_column)) {
358
11
            return _execute_number<NestedColumnType, NestedColumnType>(
359
11
                    offsets, nested_null_map, nested_column, right_column, right_nested_null_map,
360
11
                    outer_null_map);
361
11
        }
362
0
        return nullptr;
363
11
    }
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE2EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
_ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE3EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Line
Count
Source
356
1
                                       const UInt8* outer_null_map) const {
357
1
        if (is_column<NestedColumnType>(right_column)) {
358
1
            return _execute_number<NestedColumnType, NestedColumnType>(
359
1
                    offsets, nested_null_map, nested_column, right_column, right_nested_null_map,
360
1
                    outer_null_map);
361
1
        }
362
0
        return nullptr;
363
1
    }
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE4EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
_ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE5EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Line
Count
Source
356
1
                                       const UInt8* outer_null_map) const {
357
1
        if (is_column<NestedColumnType>(right_column)) {
358
1
            return _execute_number<NestedColumnType, NestedColumnType>(
359
1
                    offsets, nested_null_map, nested_column, right_column, right_nested_null_map,
360
1
                    outer_null_map);
361
1
        }
362
0
        return nullptr;
363
1
    }
_ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE6EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Line
Count
Source
356
1
                                       const UInt8* outer_null_map) const {
357
1
        if (is_column<NestedColumnType>(right_column)) {
358
1
            return _execute_number<NestedColumnType, NestedColumnType>(
359
1
                    offsets, nested_null_map, nested_column, right_column, right_nested_null_map,
360
1
                    outer_null_map);
361
1
        }
362
0
        return nullptr;
363
1
    }
_ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE7EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Line
Count
Source
356
1
                                       const UInt8* outer_null_map) const {
357
1
        if (is_column<NestedColumnType>(right_column)) {
358
1
            return _execute_number<NestedColumnType, NestedColumnType>(
359
1
                    offsets, nested_null_map, nested_column, right_column, right_nested_null_map,
360
1
                    outer_null_map);
361
1
        }
362
0
        return nullptr;
363
1
    }
_ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE8EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Line
Count
Source
356
1
                                       const UInt8* outer_null_map) const {
357
1
        if (is_column<NestedColumnType>(right_column)) {
358
1
            return _execute_number<NestedColumnType, NestedColumnType>(
359
1
                    offsets, nested_null_map, nested_column, right_column, right_nested_null_map,
360
1
                    outer_null_map);
361
1
        }
362
0
        return nullptr;
363
1
    }
_ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE9EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Line
Count
Source
356
1
                                       const UInt8* outer_null_map) const {
357
1
        if (is_column<NestedColumnType>(right_column)) {
358
1
            return _execute_number<NestedColumnType, NestedColumnType>(
359
1
                    offsets, nested_null_map, nested_column, right_column, right_nested_null_map,
360
1
                    outer_null_map);
361
1
        }
362
0
        return nullptr;
363
1
    }
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE24_execute_number_expandedINS_13ColumnDecimalILNS_13PrimitiveTypeE28EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE24_execute_number_expandedINS_13ColumnDecimalILNS_13PrimitiveTypeE29EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
_ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE24_execute_number_expandedINS_13ColumnDecimalILNS_13PrimitiveTypeE20EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Line
Count
Source
356
1
                                       const UInt8* outer_null_map) const {
357
1
        if (is_column<NestedColumnType>(right_column)) {
358
1
            return _execute_number<NestedColumnType, NestedColumnType>(
359
1
                    offsets, nested_null_map, nested_column, right_column, right_nested_null_map,
360
1
                    outer_null_map);
361
1
        }
362
0
        return nullptr;
363
1
    }
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE24_execute_number_expandedINS_13ColumnDecimalILNS_13PrimitiveTypeE30EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE24_execute_number_expandedINS_13ColumnDecimalILNS_13PrimitiveTypeE35EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE11EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE25EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE26EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE12EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE27EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE42EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE36EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE37EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE2EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
_ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE3EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Line
Count
Source
356
1
                                       const UInt8* outer_null_map) const {
357
1
        if (is_column<NestedColumnType>(right_column)) {
358
1
            return _execute_number<NestedColumnType, NestedColumnType>(
359
1
                    offsets, nested_null_map, nested_column, right_column, right_nested_null_map,
360
1
                    outer_null_map);
361
1
        }
362
0
        return nullptr;
363
1
    }
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE4EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
_ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE5EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Line
Count
Source
356
2
                                       const UInt8* outer_null_map) const {
357
2
        if (is_column<NestedColumnType>(right_column)) {
358
2
            return _execute_number<NestedColumnType, NestedColumnType>(
359
2
                    offsets, nested_null_map, nested_column, right_column, right_nested_null_map,
360
2
                    outer_null_map);
361
2
        }
362
0
        return nullptr;
363
2
    }
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE6EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE7EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE8EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE9EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE24_execute_number_expandedINS_13ColumnDecimalILNS_13PrimitiveTypeE28EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE24_execute_number_expandedINS_13ColumnDecimalILNS_13PrimitiveTypeE29EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
_ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE24_execute_number_expandedINS_13ColumnDecimalILNS_13PrimitiveTypeE20EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Line
Count
Source
356
1
                                       const UInt8* outer_null_map) const {
357
1
        if (is_column<NestedColumnType>(right_column)) {
358
1
            return _execute_number<NestedColumnType, NestedColumnType>(
359
1
                    offsets, nested_null_map, nested_column, right_column, right_nested_null_map,
360
1
                    outer_null_map);
361
1
        }
362
0
        return nullptr;
363
1
    }
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE24_execute_number_expandedINS_13ColumnDecimalILNS_13PrimitiveTypeE30EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE24_execute_number_expandedINS_13ColumnDecimalILNS_13PrimitiveTypeE35EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE11EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE25EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE26EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE12EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE27EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE42EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE36EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE37EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE2EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE3EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE4EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE5EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE6EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE7EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE8EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE9EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE24_execute_number_expandedINS_13ColumnDecimalILNS_13PrimitiveTypeE28EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE24_execute_number_expandedINS_13ColumnDecimalILNS_13PrimitiveTypeE29EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE24_execute_number_expandedINS_13ColumnDecimalILNS_13PrimitiveTypeE20EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE24_execute_number_expandedINS_13ColumnDecimalILNS_13PrimitiveTypeE30EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE24_execute_number_expandedINS_13ColumnDecimalILNS_13PrimitiveTypeE35EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE11EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE25EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE26EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE12EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE27EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE42EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE36EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE24_execute_number_expandedINS_12ColumnVectorILNS_13PrimitiveTypeE37EEEEENS_3COWINS_7IColumnEE13immutable_ptrIS8_EERKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEPKhRKS8_SM_SK_SK_
364
365
    Status _execute_dispatch(Block& block, const ColumnNumbers& arguments, uint32_t result,
366
13
                             size_t input_rows_count) const {
367
        // extract array offsets and nested data
368
13
        auto left_column =
369
13
                block.get_by_position(arguments[0]).column->convert_to_full_column_if_const();
370
13
        if (block.get_by_position(arguments[0]).type->get_primitive_type() != TYPE_ARRAY) {
371
0
            return Status::InvalidArgument(get_name() + " first argument must be array, but got " +
372
0
                                           block.get_by_position(arguments[0]).type->get_name());
373
0
        }
374
13
        const ColumnArray* array_column = nullptr;
375
13
        const UInt8* array_null_map = nullptr;
376
13
        if (left_column->is_nullable()) {
377
13
            auto nullable_array = reinterpret_cast<const ColumnNullable*>(left_column.get());
378
13
            array_column =
379
13
                    reinterpret_cast<const ColumnArray*>(&nullable_array->get_nested_column());
380
13
            array_null_map = nullable_array->get_null_map_column().get_data().data();
381
13
        } else {
382
0
            array_column = reinterpret_cast<const ColumnArray*>(left_column.get());
383
0
        }
384
13
        const auto& offsets = array_column->get_offsets();
385
13
        const UInt8* nested_null_map = nullptr;
386
13
        ColumnPtr nested_column = nullptr;
387
13
        if (array_column->get_data().is_nullable()) {
388
13
            const auto& nested_null_column =
389
13
                    reinterpret_cast<const ColumnNullable&>(array_column->get_data());
390
13
            nested_null_map = nested_null_column.get_null_map_column().get_data().data();
391
13
            nested_column = nested_null_column.get_nested_column_ptr();
392
13
        } else {
393
0
            nested_column = array_column->get_data_ptr();
394
0
        }
395
396
        // get right column
397
13
        ColumnPtr right_full_column =
398
13
                block.get_by_position(arguments[1]).column->convert_to_full_column_if_const();
399
13
        ColumnPtr right_column = right_full_column;
400
13
        const UInt8* right_nested_null_map = nullptr;
401
13
        if (right_column->is_nullable()) {
402
13
            const auto& nested_null_column = assert_cast<const ColumnNullable&>(*right_full_column);
403
13
            right_column = nested_null_column.get_nested_column_ptr();
404
13
            right_nested_null_map = nested_null_column.get_null_map_column().get_data().data();
405
13
        }
406
        // execute
407
13
        auto array_type = remove_nullable(block.get_by_position(arguments[0]).type);
408
13
        auto left_element_type = remove_nullable(
409
13
                assert_cast<const DataTypeArray*>(array_type.get())->get_nested_type());
410
13
        auto right_type = remove_nullable(block.get_by_position(arguments[1]).type);
411
412
13
        ColumnPtr return_column = nullptr;
413
13
        if (is_string_type(right_type->get_primitive_type()) &&
414
13
            is_string_type(left_element_type->get_primitive_type())) {
415
2
            return_column = _execute_string(offsets, nested_null_map, *nested_column, *right_column,
416
2
                                            right_nested_null_map, array_null_map);
417
11
        } else if (right_type->get_primitive_type() == left_element_type->get_primitive_type()) {
418
11
            auto call = [&](const auto& type) -> bool {
419
11
                using DispatchType = std::decay_t<decltype(type)>;
420
11
                auto col = _execute_number_expanded<typename DispatchType::ColumnType>(
421
11
                        offsets, nested_null_map, *nested_column, *right_column,
422
11
                        right_nested_null_map, array_null_map);
423
11
                if (col) {
424
11
                    return_column = std::move(col);
425
11
                    return true;
426
11
                }
427
0
                return false;
428
11
            };
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE2EEEEEbSC_
_ZZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE3EEEEEbSC_
Line
Count
Source
418
1
            auto call = [&](const auto& type) -> bool {
419
1
                using DispatchType = std::decay_t<decltype(type)>;
420
1
                auto col = _execute_number_expanded<typename DispatchType::ColumnType>(
421
1
                        offsets, nested_null_map, *nested_column, *right_column,
422
1
                        right_nested_null_map, array_null_map);
423
1
                if (col) {
424
1
                    return_column = std::move(col);
425
1
                    return true;
426
1
                }
427
0
                return false;
428
1
            };
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE4EEEEEbSC_
_ZZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE5EEEEEbSC_
Line
Count
Source
418
1
            auto call = [&](const auto& type) -> bool {
419
1
                using DispatchType = std::decay_t<decltype(type)>;
420
1
                auto col = _execute_number_expanded<typename DispatchType::ColumnType>(
421
1
                        offsets, nested_null_map, *nested_column, *right_column,
422
1
                        right_nested_null_map, array_null_map);
423
1
                if (col) {
424
1
                    return_column = std::move(col);
425
1
                    return true;
426
1
                }
427
0
                return false;
428
1
            };
_ZZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE6EEEEEbSC_
Line
Count
Source
418
1
            auto call = [&](const auto& type) -> bool {
419
1
                using DispatchType = std::decay_t<decltype(type)>;
420
1
                auto col = _execute_number_expanded<typename DispatchType::ColumnType>(
421
1
                        offsets, nested_null_map, *nested_column, *right_column,
422
1
                        right_nested_null_map, array_null_map);
423
1
                if (col) {
424
1
                    return_column = std::move(col);
425
1
                    return true;
426
1
                }
427
0
                return false;
428
1
            };
_ZZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE7EEEEEbSC_
Line
Count
Source
418
1
            auto call = [&](const auto& type) -> bool {
419
1
                using DispatchType = std::decay_t<decltype(type)>;
420
1
                auto col = _execute_number_expanded<typename DispatchType::ColumnType>(
421
1
                        offsets, nested_null_map, *nested_column, *right_column,
422
1
                        right_nested_null_map, array_null_map);
423
1
                if (col) {
424
1
                    return_column = std::move(col);
425
1
                    return true;
426
1
                }
427
0
                return false;
428
1
            };
_ZZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE8EEEEEbSC_
Line
Count
Source
418
1
            auto call = [&](const auto& type) -> bool {
419
1
                using DispatchType = std::decay_t<decltype(type)>;
420
1
                auto col = _execute_number_expanded<typename DispatchType::ColumnType>(
421
1
                        offsets, nested_null_map, *nested_column, *right_column,
422
1
                        right_nested_null_map, array_null_map);
423
1
                if (col) {
424
1
                    return_column = std::move(col);
425
1
                    return true;
426
1
                }
427
0
                return false;
428
1
            };
_ZZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE9EEEEEbSC_
Line
Count
Source
418
1
            auto call = [&](const auto& type) -> bool {
419
1
                using DispatchType = std::decay_t<decltype(type)>;
420
1
                auto col = _execute_number_expanded<typename DispatchType::ColumnType>(
421
1
                        offsets, nested_null_map, *nested_column, *right_column,
422
1
                        right_nested_null_map, array_null_map);
423
1
                if (col) {
424
1
                    return_column = std::move(col);
425
1
                    return true;
426
1
                }
427
0
                return false;
428
1
            };
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSC_
_ZZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSC_
Line
Count
Source
418
1
            auto call = [&](const auto& type) -> bool {
419
1
                using DispatchType = std::decay_t<decltype(type)>;
420
1
                auto col = _execute_number_expanded<typename DispatchType::ColumnType>(
421
1
                        offsets, nested_null_map, *nested_column, *right_column,
422
1
                        right_nested_null_map, array_null_map);
423
1
                if (col) {
424
1
                    return_column = std::move(col);
425
1
                    return true;
426
1
                }
427
0
                return false;
428
1
            };
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE11EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE25EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE26EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE12EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE27EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE42EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE36EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE37EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE2EEEEEbSC_
_ZZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE3EEEEEbSC_
Line
Count
Source
418
1
            auto call = [&](const auto& type) -> bool {
419
1
                using DispatchType = std::decay_t<decltype(type)>;
420
1
                auto col = _execute_number_expanded<typename DispatchType::ColumnType>(
421
1
                        offsets, nested_null_map, *nested_column, *right_column,
422
1
                        right_nested_null_map, array_null_map);
423
1
                if (col) {
424
1
                    return_column = std::move(col);
425
1
                    return true;
426
1
                }
427
0
                return false;
428
1
            };
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE4EEEEEbSC_
_ZZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE5EEEEEbSC_
Line
Count
Source
418
2
            auto call = [&](const auto& type) -> bool {
419
2
                using DispatchType = std::decay_t<decltype(type)>;
420
2
                auto col = _execute_number_expanded<typename DispatchType::ColumnType>(
421
2
                        offsets, nested_null_map, *nested_column, *right_column,
422
2
                        right_nested_null_map, array_null_map);
423
2
                if (col) {
424
2
                    return_column = std::move(col);
425
2
                    return true;
426
2
                }
427
0
                return false;
428
2
            };
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE6EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE7EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE8EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE9EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSC_
_ZZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSC_
Line
Count
Source
418
1
            auto call = [&](const auto& type) -> bool {
419
1
                using DispatchType = std::decay_t<decltype(type)>;
420
1
                auto col = _execute_number_expanded<typename DispatchType::ColumnType>(
421
1
                        offsets, nested_null_map, *nested_column, *right_column,
422
1
                        right_nested_null_map, array_null_map);
423
1
                if (col) {
424
1
                    return_column = std::move(col);
425
1
                    return true;
426
1
                }
427
0
                return false;
428
1
            };
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE11EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE25EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE26EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE12EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE27EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE42EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE36EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE37EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE2EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE3EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE4EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE5EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE6EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE7EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE8EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE9EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE11EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE25EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE26EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE12EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE27EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE42EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE36EEEEEbSC_
Unexecuted instantiation: _ZZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjmENKUlRKT_E_clINS_16DispatchDataTypeILNS_13PrimitiveTypeE37EEEEEbSC_
429
11
            dispatch_switch_scalar(right_type->get_primitive_type(), call);
430
11
        }
431
432
13
        if (return_column) {
433
13
            block.replace_by_position(result, std::move(return_column));
434
13
            return Status::OK();
435
13
        }
436
0
        return Status::RuntimeError("execute failed or unsupported types for function {}({}, {})",
437
0
                                    get_name(),
438
0
                                    block.get_by_position(arguments[0]).type->get_name(),
439
0
                                    block.get_by_position(arguments[1]).type->get_name());
440
13
    }
_ZNK5doris18FunctionArrayIndexINS_19ArrayContainsActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
366
8
                             size_t input_rows_count) const {
367
        // extract array offsets and nested data
368
8
        auto left_column =
369
8
                block.get_by_position(arguments[0]).column->convert_to_full_column_if_const();
370
8
        if (block.get_by_position(arguments[0]).type->get_primitive_type() != TYPE_ARRAY) {
371
0
            return Status::InvalidArgument(get_name() + " first argument must be array, but got " +
372
0
                                           block.get_by_position(arguments[0]).type->get_name());
373
0
        }
374
8
        const ColumnArray* array_column = nullptr;
375
8
        const UInt8* array_null_map = nullptr;
376
8
        if (left_column->is_nullable()) {
377
8
            auto nullable_array = reinterpret_cast<const ColumnNullable*>(left_column.get());
378
8
            array_column =
379
8
                    reinterpret_cast<const ColumnArray*>(&nullable_array->get_nested_column());
380
8
            array_null_map = nullable_array->get_null_map_column().get_data().data();
381
8
        } else {
382
0
            array_column = reinterpret_cast<const ColumnArray*>(left_column.get());
383
0
        }
384
8
        const auto& offsets = array_column->get_offsets();
385
8
        const UInt8* nested_null_map = nullptr;
386
8
        ColumnPtr nested_column = nullptr;
387
8
        if (array_column->get_data().is_nullable()) {
388
8
            const auto& nested_null_column =
389
8
                    reinterpret_cast<const ColumnNullable&>(array_column->get_data());
390
8
            nested_null_map = nested_null_column.get_null_map_column().get_data().data();
391
8
            nested_column = nested_null_column.get_nested_column_ptr();
392
8
        } else {
393
0
            nested_column = array_column->get_data_ptr();
394
0
        }
395
396
        // get right column
397
8
        ColumnPtr right_full_column =
398
8
                block.get_by_position(arguments[1]).column->convert_to_full_column_if_const();
399
8
        ColumnPtr right_column = right_full_column;
400
8
        const UInt8* right_nested_null_map = nullptr;
401
8
        if (right_column->is_nullable()) {
402
8
            const auto& nested_null_column = assert_cast<const ColumnNullable&>(*right_full_column);
403
8
            right_column = nested_null_column.get_nested_column_ptr();
404
8
            right_nested_null_map = nested_null_column.get_null_map_column().get_data().data();
405
8
        }
406
        // execute
407
8
        auto array_type = remove_nullable(block.get_by_position(arguments[0]).type);
408
8
        auto left_element_type = remove_nullable(
409
8
                assert_cast<const DataTypeArray*>(array_type.get())->get_nested_type());
410
8
        auto right_type = remove_nullable(block.get_by_position(arguments[1]).type);
411
412
8
        ColumnPtr return_column = nullptr;
413
8
        if (is_string_type(right_type->get_primitive_type()) &&
414
8
            is_string_type(left_element_type->get_primitive_type())) {
415
1
            return_column = _execute_string(offsets, nested_null_map, *nested_column, *right_column,
416
1
                                            right_nested_null_map, array_null_map);
417
7
        } else if (right_type->get_primitive_type() == left_element_type->get_primitive_type()) {
418
7
            auto call = [&](const auto& type) -> bool {
419
7
                using DispatchType = std::decay_t<decltype(type)>;
420
7
                auto col = _execute_number_expanded<typename DispatchType::ColumnType>(
421
7
                        offsets, nested_null_map, *nested_column, *right_column,
422
7
                        right_nested_null_map, array_null_map);
423
7
                if (col) {
424
7
                    return_column = std::move(col);
425
7
                    return true;
426
7
                }
427
7
                return false;
428
7
            };
429
7
            dispatch_switch_scalar(right_type->get_primitive_type(), call);
430
7
        }
431
432
8
        if (return_column) {
433
8
            block.replace_by_position(result, std::move(return_column));
434
8
            return Status::OK();
435
8
        }
436
0
        return Status::RuntimeError("execute failed or unsupported types for function {}({}, {})",
437
0
                                    get_name(),
438
0
                                    block.get_by_position(arguments[0]).type->get_name(),
439
0
                                    block.get_by_position(arguments[1]).type->get_name());
440
8
    }
_ZNK5doris18FunctionArrayIndexINS_19ArrayPositionActionEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjm
Line
Count
Source
366
5
                             size_t input_rows_count) const {
367
        // extract array offsets and nested data
368
5
        auto left_column =
369
5
                block.get_by_position(arguments[0]).column->convert_to_full_column_if_const();
370
5
        if (block.get_by_position(arguments[0]).type->get_primitive_type() != TYPE_ARRAY) {
371
0
            return Status::InvalidArgument(get_name() + " first argument must be array, but got " +
372
0
                                           block.get_by_position(arguments[0]).type->get_name());
373
0
        }
374
5
        const ColumnArray* array_column = nullptr;
375
5
        const UInt8* array_null_map = nullptr;
376
5
        if (left_column->is_nullable()) {
377
5
            auto nullable_array = reinterpret_cast<const ColumnNullable*>(left_column.get());
378
5
            array_column =
379
5
                    reinterpret_cast<const ColumnArray*>(&nullable_array->get_nested_column());
380
5
            array_null_map = nullable_array->get_null_map_column().get_data().data();
381
5
        } else {
382
0
            array_column = reinterpret_cast<const ColumnArray*>(left_column.get());
383
0
        }
384
5
        const auto& offsets = array_column->get_offsets();
385
5
        const UInt8* nested_null_map = nullptr;
386
5
        ColumnPtr nested_column = nullptr;
387
5
        if (array_column->get_data().is_nullable()) {
388
5
            const auto& nested_null_column =
389
5
                    reinterpret_cast<const ColumnNullable&>(array_column->get_data());
390
5
            nested_null_map = nested_null_column.get_null_map_column().get_data().data();
391
5
            nested_column = nested_null_column.get_nested_column_ptr();
392
5
        } else {
393
0
            nested_column = array_column->get_data_ptr();
394
0
        }
395
396
        // get right column
397
5
        ColumnPtr right_full_column =
398
5
                block.get_by_position(arguments[1]).column->convert_to_full_column_if_const();
399
5
        ColumnPtr right_column = right_full_column;
400
5
        const UInt8* right_nested_null_map = nullptr;
401
5
        if (right_column->is_nullable()) {
402
5
            const auto& nested_null_column = assert_cast<const ColumnNullable&>(*right_full_column);
403
5
            right_column = nested_null_column.get_nested_column_ptr();
404
5
            right_nested_null_map = nested_null_column.get_null_map_column().get_data().data();
405
5
        }
406
        // execute
407
5
        auto array_type = remove_nullable(block.get_by_position(arguments[0]).type);
408
5
        auto left_element_type = remove_nullable(
409
5
                assert_cast<const DataTypeArray*>(array_type.get())->get_nested_type());
410
5
        auto right_type = remove_nullable(block.get_by_position(arguments[1]).type);
411
412
5
        ColumnPtr return_column = nullptr;
413
5
        if (is_string_type(right_type->get_primitive_type()) &&
414
5
            is_string_type(left_element_type->get_primitive_type())) {
415
1
            return_column = _execute_string(offsets, nested_null_map, *nested_column, *right_column,
416
1
                                            right_nested_null_map, array_null_map);
417
4
        } else if (right_type->get_primitive_type() == left_element_type->get_primitive_type()) {
418
4
            auto call = [&](const auto& type) -> bool {
419
4
                using DispatchType = std::decay_t<decltype(type)>;
420
4
                auto col = _execute_number_expanded<typename DispatchType::ColumnType>(
421
4
                        offsets, nested_null_map, *nested_column, *right_column,
422
4
                        right_nested_null_map, array_null_map);
423
4
                if (col) {
424
4
                    return_column = std::move(col);
425
4
                    return true;
426
4
                }
427
4
                return false;
428
4
            };
429
4
            dispatch_switch_scalar(right_type->get_primitive_type(), call);
430
4
        }
431
432
5
        if (return_column) {
433
5
            block.replace_by_position(result, std::move(return_column));
434
5
            return Status::OK();
435
5
        }
436
0
        return Status::RuntimeError("execute failed or unsupported types for function {}({}, {})",
437
0
                                    get_name(),
438
0
                                    block.get_by_position(arguments[0]).type->get_name(),
439
0
                                    block.get_by_position(arguments[1]).type->get_name());
440
5
    }
Unexecuted instantiation: _ZNK5doris18FunctionArrayIndexINS_15ArrayCountEqualEE17_execute_dispatchERNS_5BlockERKSt6vectorIjSaIjEEjm
441
};
442
443
} // namespace doris