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 {¶m})); |
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 |