be/src/exprs/function/array/function_array_aggregation.cpp
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/arrayAggregation.cpp |
19 | | // and modified by Doris |
20 | | |
21 | | #include <stddef.h> |
22 | | #include <stdint.h> |
23 | | |
24 | | #include <memory> |
25 | | #include <type_traits> |
26 | | #include <utility> |
27 | | |
28 | | #include "common/exception.h" |
29 | | #include "common/status.h" |
30 | | #include "core/arena.h" |
31 | | #include "core/block/block.h" |
32 | | #include "core/block/column_numbers.h" |
33 | | #include "core/column/column.h" |
34 | | #include "core/column/column_array.h" |
35 | | #include "core/column/column_decimal.h" |
36 | | #include "core/column/column_nullable.h" |
37 | | #include "core/data_type/data_type.h" |
38 | | #include "core/data_type/data_type_array.h" |
39 | | #include "core/data_type/data_type_nullable.h" |
40 | | #include "core/data_type/define_primitive_type.h" |
41 | | #include "core/data_type/primitive_type.h" |
42 | | #include "core/types.h" |
43 | | #include "exprs/aggregate/aggregate_function.h" |
44 | | #include "exprs/aggregate/aggregate_function_avg.h" |
45 | | #include "exprs/aggregate/aggregate_function_min_max.h" |
46 | | #include "exprs/aggregate/aggregate_function_product.h" |
47 | | #include "exprs/aggregate/aggregate_function_simple_factory.h" |
48 | | #include "exprs/aggregate/aggregate_function_sum.h" |
49 | | #include "exprs/aggregate/helpers.h" |
50 | | #include "exprs/function/array/function_array_join.h" |
51 | | #include "exprs/function/array/function_array_mapped.h" |
52 | | #include "exprs/function/function.h" |
53 | | #include "exprs/function/simple_function_factory.h" |
54 | | #include "storage/predicate/column_predicate.h" |
55 | | |
56 | | namespace doris { |
57 | | |
58 | | enum class AggregateOperation { MIN, MAX, SUM, AVERAGE, PRODUCT }; |
59 | | |
60 | | // For MIN/MAX, the type of result is the same as the type of elements, we can omit the |
61 | | // template specialization. |
62 | | template <AggregateOperation operation> |
63 | | struct AggregateFunctionTraits; |
64 | | |
65 | | template <AggregateOperation operation> |
66 | | requires(operation == AggregateOperation::MIN || operation == AggregateOperation::MAX) |
67 | | struct AggregateFunctionTraits<operation> { |
68 | | template <PrimitiveType Element> |
69 | | struct TypeTraits { |
70 | | static constexpr PrimitiveType ResultType = Element; |
71 | | }; |
72 | | }; |
73 | | |
74 | | template <> |
75 | | struct AggregateFunctionTraits<AggregateOperation::SUM> { |
76 | | template <PrimitiveType Element> |
77 | | struct TypeTraits { |
78 | | static constexpr PrimitiveType ResultType = |
79 | | Element == TYPE_DECIMALV2 ? TYPE_DECIMALV2 |
80 | | : is_float_or_double(Element) |
81 | | ? TYPE_DOUBLE |
82 | | : (Element == TYPE_LARGEINT ? TYPE_LARGEINT : TYPE_BIGINT); |
83 | | using AggregateDataType = AggregateFunctionSumData<ResultType>; |
84 | | using Function = AggregateFunctionSum<Element, ResultType, AggregateDataType>; |
85 | | }; |
86 | | }; |
87 | | template <> |
88 | | struct AggregateFunctionTraits<AggregateOperation::AVERAGE> { |
89 | | template <PrimitiveType Element> |
90 | | struct TypeTraits { |
91 | | static constexpr PrimitiveType ResultType = |
92 | | Element == TYPE_DECIMALV2 ? TYPE_DECIMALV2 : TYPE_DOUBLE; |
93 | | using AggregateDataType = AggregateFunctionAvgData<ResultType>; |
94 | | using Function = AggregateFunctionAvg<Element, ResultType, AggregateDataType>; |
95 | | static_assert(std::is_same_v<typename PrimitiveTypeTraits<ResultType>::CppType, |
96 | | typename Function::ResultType>, |
97 | | "ResultType doesn't match."); |
98 | | }; |
99 | | }; |
100 | | |
101 | | template <> |
102 | | struct AggregateFunctionTraits<AggregateOperation::PRODUCT> { |
103 | | template <PrimitiveType Element> |
104 | | struct TypeTraits { |
105 | | static constexpr PrimitiveType ResultType = |
106 | | Element == TYPE_DECIMALV2 ? TYPE_DECIMALV2 : Element; |
107 | | using AggregateDataType = AggregateFunctionProductData<ResultType>; |
108 | | using Function = AggregateFunctionProduct<Element, ResultType, AggregateDataType>; |
109 | | }; |
110 | | }; |
111 | | |
112 | | template <AggregateOperation AggOp, typename Derived> |
113 | | struct ArrayAggregateFunctionCreator { |
114 | | template <PrimitiveType T> |
115 | | using Function = typename Derived::template TypeTraits<T>::Function; |
116 | | |
117 | | static auto create(const DataTypePtr& data_type_ptr, const AggregateFunctionAttr& attr) |
118 | 152 | -> AggregateFunctionPtr { |
119 | | if constexpr (AggOp == AggregateOperation::MIN || AggOp == AggregateOperation::MAX) { |
120 | | return creator_with_type_list< |
121 | | TYPE_TINYINT, TYPE_SMALLINT, TYPE_INT, TYPE_BIGINT, TYPE_LARGEINT, TYPE_FLOAT, |
122 | | TYPE_DOUBLE, TYPE_DECIMAL32, TYPE_DECIMAL64, TYPE_DECIMAL128I, |
123 | | TYPE_DECIMAL256>::create<Function>(DataTypes {make_nullable(data_type_ptr)}, |
124 | | true, attr); |
125 | 152 | } else { |
126 | 152 | return creator_with_type_list< |
127 | 152 | TYPE_TINYINT, TYPE_SMALLINT, TYPE_INT, TYPE_BIGINT, TYPE_LARGEINT, TYPE_FLOAT, |
128 | 152 | TYPE_DOUBLE>::create<Function>(DataTypes {make_nullable(data_type_ptr)}, true, |
129 | 152 | attr); |
130 | 152 | } |
131 | 152 | } _ZN5doris29ArrayAggregateFunctionCreatorILNS_18AggregateOperationE2ENS_23AggregateFunctionTraitsILS1_2EEEE6createERKSt10shared_ptrIKNS_9IDataTypeEERKNS_21AggregateFunctionAttrE Line | Count | Source | 118 | 56 | -> AggregateFunctionPtr { | 119 | | if constexpr (AggOp == AggregateOperation::MIN || AggOp == AggregateOperation::MAX) { | 120 | | return creator_with_type_list< | 121 | | TYPE_TINYINT, TYPE_SMALLINT, TYPE_INT, TYPE_BIGINT, TYPE_LARGEINT, TYPE_FLOAT, | 122 | | TYPE_DOUBLE, TYPE_DECIMAL32, TYPE_DECIMAL64, TYPE_DECIMAL128I, | 123 | | TYPE_DECIMAL256>::create<Function>(DataTypes {make_nullable(data_type_ptr)}, | 124 | | true, attr); | 125 | 56 | } else { | 126 | 56 | return creator_with_type_list< | 127 | 56 | TYPE_TINYINT, TYPE_SMALLINT, TYPE_INT, TYPE_BIGINT, TYPE_LARGEINT, TYPE_FLOAT, | 128 | 56 | TYPE_DOUBLE>::create<Function>(DataTypes {make_nullable(data_type_ptr)}, true, | 129 | 56 | attr); | 130 | 56 | } | 131 | 56 | } |
_ZN5doris29ArrayAggregateFunctionCreatorILNS_18AggregateOperationE3ENS_23AggregateFunctionTraitsILS1_3EEEE6createERKSt10shared_ptrIKNS_9IDataTypeEERKNS_21AggregateFunctionAttrE Line | Count | Source | 118 | 56 | -> AggregateFunctionPtr { | 119 | | if constexpr (AggOp == AggregateOperation::MIN || AggOp == AggregateOperation::MAX) { | 120 | | return creator_with_type_list< | 121 | | TYPE_TINYINT, TYPE_SMALLINT, TYPE_INT, TYPE_BIGINT, TYPE_LARGEINT, TYPE_FLOAT, | 122 | | TYPE_DOUBLE, TYPE_DECIMAL32, TYPE_DECIMAL64, TYPE_DECIMAL128I, | 123 | | TYPE_DECIMAL256>::create<Function>(DataTypes {make_nullable(data_type_ptr)}, | 124 | | true, attr); | 125 | 56 | } else { | 126 | 56 | return creator_with_type_list< | 127 | 56 | TYPE_TINYINT, TYPE_SMALLINT, TYPE_INT, TYPE_BIGINT, TYPE_LARGEINT, TYPE_FLOAT, | 128 | 56 | TYPE_DOUBLE>::create<Function>(DataTypes {make_nullable(data_type_ptr)}, true, | 129 | 56 | attr); | 130 | 56 | } | 131 | 56 | } |
_ZN5doris29ArrayAggregateFunctionCreatorILNS_18AggregateOperationE4ENS_23AggregateFunctionTraitsILS1_4EEEE6createERKSt10shared_ptrIKNS_9IDataTypeEERKNS_21AggregateFunctionAttrE Line | Count | Source | 118 | 40 | -> AggregateFunctionPtr { | 119 | | if constexpr (AggOp == AggregateOperation::MIN || AggOp == AggregateOperation::MAX) { | 120 | | return creator_with_type_list< | 121 | | TYPE_TINYINT, TYPE_SMALLINT, TYPE_INT, TYPE_BIGINT, TYPE_LARGEINT, TYPE_FLOAT, | 122 | | TYPE_DOUBLE, TYPE_DECIMAL32, TYPE_DECIMAL64, TYPE_DECIMAL128I, | 123 | | TYPE_DECIMAL256>::create<Function>(DataTypes {make_nullable(data_type_ptr)}, | 124 | | true, attr); | 125 | 40 | } else { | 126 | 40 | return creator_with_type_list< | 127 | 40 | TYPE_TINYINT, TYPE_SMALLINT, TYPE_INT, TYPE_BIGINT, TYPE_LARGEINT, TYPE_FLOAT, | 128 | 40 | TYPE_DOUBLE>::create<Function>(DataTypes {make_nullable(data_type_ptr)}, true, | 129 | 40 | attr); | 130 | 40 | } | 131 | 40 | } |
|
132 | | }; |
133 | | |
134 | | template <AggregateOperation operation> |
135 | | struct ArrayAggregateImpl { |
136 | | using column_type = ColumnArray; |
137 | | using data_type = DataTypeArray; |
138 | | |
139 | 152 | static bool _is_variadic() { return false; }_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12_is_variadicEv Line | Count | Source | 139 | 28 | static bool _is_variadic() { return false; } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12_is_variadicEv Line | Count | Source | 139 | 28 | static bool _is_variadic() { return false; } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12_is_variadicEv Line | Count | Source | 139 | 20 | static bool _is_variadic() { return false; } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12_is_variadicEv Line | Count | Source | 139 | 38 | static bool _is_variadic() { return false; } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12_is_variadicEv Line | Count | Source | 139 | 38 | static bool _is_variadic() { return false; } |
|
140 | | |
141 | 148 | static size_t _get_number_of_arguments() { return 1; }_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE24_get_number_of_argumentsEv Line | Count | Source | 141 | 28 | static size_t _get_number_of_arguments() { return 1; } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE24_get_number_of_argumentsEv Line | Count | Source | 141 | 28 | static size_t _get_number_of_arguments() { return 1; } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE24_get_number_of_argumentsEv Line | Count | Source | 141 | 20 | static size_t _get_number_of_arguments() { return 1; } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE24_get_number_of_argumentsEv Line | Count | Source | 141 | 36 | static size_t _get_number_of_arguments() { return 1; } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE24_get_number_of_argumentsEv Line | Count | Source | 141 | 36 | static size_t _get_number_of_arguments() { return 1; } |
|
142 | | |
143 | | static bool skip_return_type_check() { return false; } |
144 | | |
145 | 148 | static DataTypePtr get_return_type(const DataTypes& arguments) { |
146 | 148 | using Function = |
147 | 148 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; |
148 | 148 | const DataTypeArray* data_type_array = |
149 | 148 | static_cast<const DataTypeArray*>(remove_nullable(arguments[0]).get()); |
150 | 148 | auto function = Function::create(data_type_array->get_nested_type(), |
151 | 148 | {.is_window_function = false, .column_names = {}}); |
152 | 148 | if (function) { |
153 | 148 | return function->get_return_type(); |
154 | 148 | } else { |
155 | 0 | throw doris::Exception(ErrorCode::INVALID_ARGUMENT, |
156 | 0 | "Unexpected type {} for aggregation {}", |
157 | 0 | data_type_array->get_nested_type()->get_name(), operation); |
158 | 0 | } |
159 | 148 | } _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE15get_return_typeERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS7_EE Line | Count | Source | 145 | 28 | static DataTypePtr get_return_type(const DataTypes& arguments) { | 146 | 28 | using Function = | 147 | 28 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 148 | 28 | const DataTypeArray* data_type_array = | 149 | 28 | static_cast<const DataTypeArray*>(remove_nullable(arguments[0]).get()); | 150 | 28 | auto function = Function::create(data_type_array->get_nested_type(), | 151 | 28 | {.is_window_function = false, .column_names = {}}); | 152 | 28 | if (function) { | 153 | 28 | return function->get_return_type(); | 154 | 28 | } else { | 155 | 0 | throw doris::Exception(ErrorCode::INVALID_ARGUMENT, | 156 | 0 | "Unexpected type {} for aggregation {}", | 157 | 0 | data_type_array->get_nested_type()->get_name(), operation); | 158 | 0 | } | 159 | 28 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE15get_return_typeERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS7_EE Line | Count | Source | 145 | 28 | static DataTypePtr get_return_type(const DataTypes& arguments) { | 146 | 28 | using Function = | 147 | 28 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 148 | 28 | const DataTypeArray* data_type_array = | 149 | 28 | static_cast<const DataTypeArray*>(remove_nullable(arguments[0]).get()); | 150 | 28 | auto function = Function::create(data_type_array->get_nested_type(), | 151 | 28 | {.is_window_function = false, .column_names = {}}); | 152 | 28 | if (function) { | 153 | 28 | return function->get_return_type(); | 154 | 28 | } else { | 155 | 0 | throw doris::Exception(ErrorCode::INVALID_ARGUMENT, | 156 | 0 | "Unexpected type {} for aggregation {}", | 157 | 0 | data_type_array->get_nested_type()->get_name(), operation); | 158 | 0 | } | 159 | 28 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE15get_return_typeERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS7_EE Line | Count | Source | 145 | 20 | static DataTypePtr get_return_type(const DataTypes& arguments) { | 146 | 20 | using Function = | 147 | 20 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 148 | 20 | const DataTypeArray* data_type_array = | 149 | 20 | static_cast<const DataTypeArray*>(remove_nullable(arguments[0]).get()); | 150 | 20 | auto function = Function::create(data_type_array->get_nested_type(), | 151 | 20 | {.is_window_function = false, .column_names = {}}); | 152 | 20 | if (function) { | 153 | 20 | return function->get_return_type(); | 154 | 20 | } else { | 155 | 0 | throw doris::Exception(ErrorCode::INVALID_ARGUMENT, | 156 | 0 | "Unexpected type {} for aggregation {}", | 157 | 0 | data_type_array->get_nested_type()->get_name(), operation); | 158 | 0 | } | 159 | 20 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE15get_return_typeERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS7_EE Line | Count | Source | 145 | 36 | static DataTypePtr get_return_type(const DataTypes& arguments) { | 146 | 36 | using Function = | 147 | 36 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 148 | 36 | const DataTypeArray* data_type_array = | 149 | 36 | static_cast<const DataTypeArray*>(remove_nullable(arguments[0]).get()); | 150 | 36 | auto function = Function::create(data_type_array->get_nested_type(), | 151 | 36 | {.is_window_function = false, .column_names = {}}); | 152 | 36 | if (function) { | 153 | 36 | return function->get_return_type(); | 154 | 36 | } else { | 155 | 0 | throw doris::Exception(ErrorCode::INVALID_ARGUMENT, | 156 | 0 | "Unexpected type {} for aggregation {}", | 157 | 0 | data_type_array->get_nested_type()->get_name(), operation); | 158 | 0 | } | 159 | 36 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE15get_return_typeERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS7_EE Line | Count | Source | 145 | 36 | static DataTypePtr get_return_type(const DataTypes& arguments) { | 146 | 36 | using Function = | 147 | 36 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 148 | 36 | const DataTypeArray* data_type_array = | 149 | 36 | static_cast<const DataTypeArray*>(remove_nullable(arguments[0]).get()); | 150 | 36 | auto function = Function::create(data_type_array->get_nested_type(), | 151 | 36 | {.is_window_function = false, .column_names = {}}); | 152 | 36 | if (function) { | 153 | 36 | return function->get_return_type(); | 154 | 36 | } else { | 155 | 0 | throw doris::Exception(ErrorCode::INVALID_ARGUMENT, | 156 | 0 | "Unexpected type {} for aggregation {}", | 157 | 0 | data_type_array->get_nested_type()->get_name(), operation); | 158 | 0 | } | 159 | 36 | } |
|
160 | | |
161 | | static Status execute(Block& block, const ColumnNumbers& arguments, uint32_t result, |
162 | 148 | const DataTypeArray* data_type_array, const ColumnArray& array) { |
163 | 148 | ColumnPtr res; |
164 | 148 | DataTypePtr type = data_type_array->get_nested_type(); |
165 | 148 | const IColumn* data = array.get_data_ptr().get(); |
166 | | |
167 | 148 | const auto& offsets = array.get_offsets(); |
168 | | if constexpr (operation == AggregateOperation::MAX || |
169 | 72 | operation == AggregateOperation::MIN) { |
170 | | // min/max can only be applied on ip type |
171 | 72 | if (execute_type<TYPE_IPV4>(res, type, data, offsets) || |
172 | 72 | execute_type<TYPE_IPV6>(res, type, data, offsets)) { |
173 | 16 | block.replace_by_position(result, std::move(res)); |
174 | 16 | return Status::OK(); |
175 | 16 | } |
176 | 72 | } |
177 | | |
178 | 148 | if (execute_type<TYPE_BOOLEAN>(res, type, data, offsets) || |
179 | 148 | execute_type<TYPE_TINYINT>(res, type, data, offsets) || |
180 | 148 | execute_type<TYPE_SMALLINT>(res, type, data, offsets) || |
181 | 148 | execute_type<TYPE_INT>(res, type, data, offsets) || |
182 | 148 | execute_type<TYPE_BIGINT>(res, type, data, offsets) || |
183 | 148 | execute_type<TYPE_LARGEINT>(res, type, data, offsets) || |
184 | 148 | execute_type<TYPE_FLOAT>(res, type, data, offsets) || |
185 | 148 | execute_type<TYPE_DOUBLE>(res, type, data, offsets) || |
186 | 148 | execute_type<TYPE_DECIMAL32>(res, type, data, offsets) || |
187 | 148 | execute_type<TYPE_DECIMAL64>(res, type, data, offsets) || |
188 | 148 | execute_type<TYPE_DECIMAL128I>(res, type, data, offsets) || |
189 | 148 | execute_type<TYPE_DECIMAL256>(res, type, data, offsets) || |
190 | 148 | execute_type<TYPE_DATEV2>(res, type, data, offsets) || |
191 | 148 | execute_type<TYPE_DATETIMEV2>(res, type, data, offsets) || |
192 | 148 | execute_type<TYPE_TIMESTAMPTZ>(res, type, data, offsets) || |
193 | 148 | execute_type<TYPE_VARCHAR>(res, type, data, offsets)) { |
194 | 132 | block.replace_by_position(result, std::move(res)); |
195 | 132 | return Status::OK(); |
196 | 132 | } else { |
197 | 16 | return Status::RuntimeError("Unexpected column for aggregation: {}", data->get_name()); |
198 | 16 | } |
199 | 148 | } _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE7executeERNS_5BlockERKSt6vectorIjSaIjEEjPKNS_13DataTypeArrayERKNS_11ColumnArrayE Line | Count | Source | 162 | 28 | const DataTypeArray* data_type_array, const ColumnArray& array) { | 163 | 28 | ColumnPtr res; | 164 | 28 | DataTypePtr type = data_type_array->get_nested_type(); | 165 | 28 | const IColumn* data = array.get_data_ptr().get(); | 166 | | | 167 | 28 | const auto& offsets = array.get_offsets(); | 168 | | if constexpr (operation == AggregateOperation::MAX || | 169 | | operation == AggregateOperation::MIN) { | 170 | | // min/max can only be applied on ip type | 171 | | if (execute_type<TYPE_IPV4>(res, type, data, offsets) || | 172 | | execute_type<TYPE_IPV6>(res, type, data, offsets)) { | 173 | | block.replace_by_position(result, std::move(res)); | 174 | | return Status::OK(); | 175 | | } | 176 | | } | 177 | | | 178 | 28 | if (execute_type<TYPE_BOOLEAN>(res, type, data, offsets) || | 179 | 28 | execute_type<TYPE_TINYINT>(res, type, data, offsets) || | 180 | 28 | execute_type<TYPE_SMALLINT>(res, type, data, offsets) || | 181 | 28 | execute_type<TYPE_INT>(res, type, data, offsets) || | 182 | 28 | execute_type<TYPE_BIGINT>(res, type, data, offsets) || | 183 | 28 | execute_type<TYPE_LARGEINT>(res, type, data, offsets) || | 184 | 28 | execute_type<TYPE_FLOAT>(res, type, data, offsets) || | 185 | 28 | execute_type<TYPE_DOUBLE>(res, type, data, offsets) || | 186 | 28 | execute_type<TYPE_DECIMAL32>(res, type, data, offsets) || | 187 | 28 | execute_type<TYPE_DECIMAL64>(res, type, data, offsets) || | 188 | 28 | execute_type<TYPE_DECIMAL128I>(res, type, data, offsets) || | 189 | 28 | execute_type<TYPE_DECIMAL256>(res, type, data, offsets) || | 190 | 28 | execute_type<TYPE_DATEV2>(res, type, data, offsets) || | 191 | 28 | execute_type<TYPE_DATETIMEV2>(res, type, data, offsets) || | 192 | 28 | execute_type<TYPE_TIMESTAMPTZ>(res, type, data, offsets) || | 193 | 28 | execute_type<TYPE_VARCHAR>(res, type, data, offsets)) { | 194 | 28 | block.replace_by_position(result, std::move(res)); | 195 | 28 | return Status::OK(); | 196 | 28 | } else { | 197 | 0 | return Status::RuntimeError("Unexpected column for aggregation: {}", data->get_name()); | 198 | 0 | } | 199 | 28 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE7executeERNS_5BlockERKSt6vectorIjSaIjEEjPKNS_13DataTypeArrayERKNS_11ColumnArrayE Line | Count | Source | 162 | 28 | const DataTypeArray* data_type_array, const ColumnArray& array) { | 163 | 28 | ColumnPtr res; | 164 | 28 | DataTypePtr type = data_type_array->get_nested_type(); | 165 | 28 | const IColumn* data = array.get_data_ptr().get(); | 166 | | | 167 | 28 | const auto& offsets = array.get_offsets(); | 168 | | if constexpr (operation == AggregateOperation::MAX || | 169 | | operation == AggregateOperation::MIN) { | 170 | | // min/max can only be applied on ip type | 171 | | if (execute_type<TYPE_IPV4>(res, type, data, offsets) || | 172 | | execute_type<TYPE_IPV6>(res, type, data, offsets)) { | 173 | | block.replace_by_position(result, std::move(res)); | 174 | | return Status::OK(); | 175 | | } | 176 | | } | 177 | | | 178 | 28 | if (execute_type<TYPE_BOOLEAN>(res, type, data, offsets) || | 179 | 28 | execute_type<TYPE_TINYINT>(res, type, data, offsets) || | 180 | 28 | execute_type<TYPE_SMALLINT>(res, type, data, offsets) || | 181 | 28 | execute_type<TYPE_INT>(res, type, data, offsets) || | 182 | 28 | execute_type<TYPE_BIGINT>(res, type, data, offsets) || | 183 | 28 | execute_type<TYPE_LARGEINT>(res, type, data, offsets) || | 184 | 28 | execute_type<TYPE_FLOAT>(res, type, data, offsets) || | 185 | 28 | execute_type<TYPE_DOUBLE>(res, type, data, offsets) || | 186 | 28 | execute_type<TYPE_DECIMAL32>(res, type, data, offsets) || | 187 | 28 | execute_type<TYPE_DECIMAL64>(res, type, data, offsets) || | 188 | 28 | execute_type<TYPE_DECIMAL128I>(res, type, data, offsets) || | 189 | 28 | execute_type<TYPE_DECIMAL256>(res, type, data, offsets) || | 190 | 28 | execute_type<TYPE_DATEV2>(res, type, data, offsets) || | 191 | 28 | execute_type<TYPE_DATETIMEV2>(res, type, data, offsets) || | 192 | 28 | execute_type<TYPE_TIMESTAMPTZ>(res, type, data, offsets) || | 193 | 28 | execute_type<TYPE_VARCHAR>(res, type, data, offsets)) { | 194 | 28 | block.replace_by_position(result, std::move(res)); | 195 | 28 | return Status::OK(); | 196 | 28 | } else { | 197 | 0 | return Status::RuntimeError("Unexpected column for aggregation: {}", data->get_name()); | 198 | 0 | } | 199 | 28 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE7executeERNS_5BlockERKSt6vectorIjSaIjEEjPKNS_13DataTypeArrayERKNS_11ColumnArrayE Line | Count | Source | 162 | 20 | const DataTypeArray* data_type_array, const ColumnArray& array) { | 163 | 20 | ColumnPtr res; | 164 | 20 | DataTypePtr type = data_type_array->get_nested_type(); | 165 | 20 | const IColumn* data = array.get_data_ptr().get(); | 166 | | | 167 | 20 | const auto& offsets = array.get_offsets(); | 168 | | if constexpr (operation == AggregateOperation::MAX || | 169 | | operation == AggregateOperation::MIN) { | 170 | | // min/max can only be applied on ip type | 171 | | if (execute_type<TYPE_IPV4>(res, type, data, offsets) || | 172 | | execute_type<TYPE_IPV6>(res, type, data, offsets)) { | 173 | | block.replace_by_position(result, std::move(res)); | 174 | | return Status::OK(); | 175 | | } | 176 | | } | 177 | | | 178 | 20 | if (execute_type<TYPE_BOOLEAN>(res, type, data, offsets) || | 179 | 20 | execute_type<TYPE_TINYINT>(res, type, data, offsets) || | 180 | 20 | execute_type<TYPE_SMALLINT>(res, type, data, offsets) || | 181 | 20 | execute_type<TYPE_INT>(res, type, data, offsets) || | 182 | 20 | execute_type<TYPE_BIGINT>(res, type, data, offsets) || | 183 | 20 | execute_type<TYPE_LARGEINT>(res, type, data, offsets) || | 184 | 20 | execute_type<TYPE_FLOAT>(res, type, data, offsets) || | 185 | 20 | execute_type<TYPE_DOUBLE>(res, type, data, offsets) || | 186 | 20 | execute_type<TYPE_DECIMAL32>(res, type, data, offsets) || | 187 | 20 | execute_type<TYPE_DECIMAL64>(res, type, data, offsets) || | 188 | 20 | execute_type<TYPE_DECIMAL128I>(res, type, data, offsets) || | 189 | 20 | execute_type<TYPE_DECIMAL256>(res, type, data, offsets) || | 190 | 20 | execute_type<TYPE_DATEV2>(res, type, data, offsets) || | 191 | 20 | execute_type<TYPE_DATETIMEV2>(res, type, data, offsets) || | 192 | 20 | execute_type<TYPE_TIMESTAMPTZ>(res, type, data, offsets) || | 193 | 20 | execute_type<TYPE_VARCHAR>(res, type, data, offsets)) { | 194 | 20 | block.replace_by_position(result, std::move(res)); | 195 | 20 | return Status::OK(); | 196 | 20 | } else { | 197 | 0 | return Status::RuntimeError("Unexpected column for aggregation: {}", data->get_name()); | 198 | 0 | } | 199 | 20 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE7executeERNS_5BlockERKSt6vectorIjSaIjEEjPKNS_13DataTypeArrayERKNS_11ColumnArrayE Line | Count | Source | 162 | 36 | const DataTypeArray* data_type_array, const ColumnArray& array) { | 163 | 36 | ColumnPtr res; | 164 | 36 | DataTypePtr type = data_type_array->get_nested_type(); | 165 | 36 | const IColumn* data = array.get_data_ptr().get(); | 166 | | | 167 | 36 | const auto& offsets = array.get_offsets(); | 168 | | if constexpr (operation == AggregateOperation::MAX || | 169 | 36 | operation == AggregateOperation::MIN) { | 170 | | // min/max can only be applied on ip type | 171 | 36 | if (execute_type<TYPE_IPV4>(res, type, data, offsets) || | 172 | 36 | execute_type<TYPE_IPV6>(res, type, data, offsets)) { | 173 | 8 | block.replace_by_position(result, std::move(res)); | 174 | 8 | return Status::OK(); | 175 | 8 | } | 176 | 36 | } | 177 | | | 178 | 36 | if (execute_type<TYPE_BOOLEAN>(res, type, data, offsets) || | 179 | 36 | execute_type<TYPE_TINYINT>(res, type, data, offsets) || | 180 | 36 | execute_type<TYPE_SMALLINT>(res, type, data, offsets) || | 181 | 36 | execute_type<TYPE_INT>(res, type, data, offsets) || | 182 | 36 | execute_type<TYPE_BIGINT>(res, type, data, offsets) || | 183 | 36 | execute_type<TYPE_LARGEINT>(res, type, data, offsets) || | 184 | 36 | execute_type<TYPE_FLOAT>(res, type, data, offsets) || | 185 | 36 | execute_type<TYPE_DOUBLE>(res, type, data, offsets) || | 186 | 36 | execute_type<TYPE_DECIMAL32>(res, type, data, offsets) || | 187 | 36 | execute_type<TYPE_DECIMAL64>(res, type, data, offsets) || | 188 | 36 | execute_type<TYPE_DECIMAL128I>(res, type, data, offsets) || | 189 | 36 | execute_type<TYPE_DECIMAL256>(res, type, data, offsets) || | 190 | 36 | execute_type<TYPE_DATEV2>(res, type, data, offsets) || | 191 | 36 | execute_type<TYPE_DATETIMEV2>(res, type, data, offsets) || | 192 | 36 | execute_type<TYPE_TIMESTAMPTZ>(res, type, data, offsets) || | 193 | 36 | execute_type<TYPE_VARCHAR>(res, type, data, offsets)) { | 194 | 28 | block.replace_by_position(result, std::move(res)); | 195 | 28 | return Status::OK(); | 196 | 28 | } else { | 197 | 8 | return Status::RuntimeError("Unexpected column for aggregation: {}", data->get_name()); | 198 | 8 | } | 199 | 36 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE7executeERNS_5BlockERKSt6vectorIjSaIjEEjPKNS_13DataTypeArrayERKNS_11ColumnArrayE Line | Count | Source | 162 | 36 | const DataTypeArray* data_type_array, const ColumnArray& array) { | 163 | 36 | ColumnPtr res; | 164 | 36 | DataTypePtr type = data_type_array->get_nested_type(); | 165 | 36 | const IColumn* data = array.get_data_ptr().get(); | 166 | | | 167 | 36 | const auto& offsets = array.get_offsets(); | 168 | | if constexpr (operation == AggregateOperation::MAX || | 169 | 36 | operation == AggregateOperation::MIN) { | 170 | | // min/max can only be applied on ip type | 171 | 36 | if (execute_type<TYPE_IPV4>(res, type, data, offsets) || | 172 | 36 | execute_type<TYPE_IPV6>(res, type, data, offsets)) { | 173 | 8 | block.replace_by_position(result, std::move(res)); | 174 | 8 | return Status::OK(); | 175 | 8 | } | 176 | 36 | } | 177 | | | 178 | 36 | if (execute_type<TYPE_BOOLEAN>(res, type, data, offsets) || | 179 | 36 | execute_type<TYPE_TINYINT>(res, type, data, offsets) || | 180 | 36 | execute_type<TYPE_SMALLINT>(res, type, data, offsets) || | 181 | 36 | execute_type<TYPE_INT>(res, type, data, offsets) || | 182 | 36 | execute_type<TYPE_BIGINT>(res, type, data, offsets) || | 183 | 36 | execute_type<TYPE_LARGEINT>(res, type, data, offsets) || | 184 | 36 | execute_type<TYPE_FLOAT>(res, type, data, offsets) || | 185 | 36 | execute_type<TYPE_DOUBLE>(res, type, data, offsets) || | 186 | 36 | execute_type<TYPE_DECIMAL32>(res, type, data, offsets) || | 187 | 36 | execute_type<TYPE_DECIMAL64>(res, type, data, offsets) || | 188 | 36 | execute_type<TYPE_DECIMAL128I>(res, type, data, offsets) || | 189 | 36 | execute_type<TYPE_DECIMAL256>(res, type, data, offsets) || | 190 | 36 | execute_type<TYPE_DATEV2>(res, type, data, offsets) || | 191 | 36 | execute_type<TYPE_DATETIMEV2>(res, type, data, offsets) || | 192 | 36 | execute_type<TYPE_TIMESTAMPTZ>(res, type, data, offsets) || | 193 | 36 | execute_type<TYPE_VARCHAR>(res, type, data, offsets)) { | 194 | 28 | block.replace_by_position(result, std::move(res)); | 195 | 28 | return Status::OK(); | 196 | 28 | } else { | 197 | 8 | return Status::RuntimeError("Unexpected column for aggregation: {}", data->get_name()); | 198 | 8 | } | 199 | 36 | } |
|
200 | | |
201 | | template <typename ColumnType, typename CreateColumnFunc> |
202 | | static bool execute_type_impl(ColumnPtr& res_ptr, const DataTypePtr& type, const IColumn* data, |
203 | | const ColumnArray::Offsets64& offsets, |
204 | 816 | CreateColumnFunc create_column_func) { |
205 | 816 | using Function = |
206 | 816 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; |
207 | | |
208 | 816 | const ColumnType* column = |
209 | 816 | is_column_nullable(*data) |
210 | 816 | ? check_and_get_column<ColumnType>( |
211 | 816 | static_cast<const ColumnNullable*>(data)->get_nested_column()) |
212 | 816 | : check_and_get_column<ColumnType>(&*data); |
213 | 816 | if (!column) { |
214 | 668 | return false; |
215 | 668 | } |
216 | | |
217 | 148 | ColumnPtr res_column = create_column_func(column); |
218 | 148 | res_column = make_nullable(res_column); |
219 | 148 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); |
220 | | |
221 | 148 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); |
222 | 148 | auto guard = AggregateFunctionGuard(function.get()); |
223 | 148 | Arena arena; |
224 | 148 | auto nullable_column = make_nullable(data->get_ptr()); |
225 | 148 | const IColumn* columns[] = {nullable_column.get()}; |
226 | 148 | function->check_input_columns_type(columns); |
227 | 148 | function->check_result_column_type(*res_column); |
228 | 518 | for (int64_t i = 0; i < offsets.size(); ++i) { |
229 | 370 | auto start = offsets[i - 1]; // -1 is ok. |
230 | 370 | auto end = offsets[i]; |
231 | 370 | bool is_empty = (start == end); |
232 | 370 | if (is_empty) { |
233 | 148 | res_column->assert_mutable()->insert_default(); |
234 | 148 | continue; |
235 | 148 | } |
236 | 222 | function->reset(guard.data()); |
237 | 222 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, |
238 | 222 | is_column_nullable(*data)); |
239 | 222 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); |
240 | 222 | } |
241 | 148 | res_ptr = std::move(res_column); |
242 | 148 | return true; |
243 | 816 | } _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE2EEEZNS2_12execute_typeILS5_2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 28 | CreateColumnFunc create_column_func) { | 205 | 28 | using Function = | 206 | 28 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 28 | const ColumnType* column = | 209 | 28 | is_column_nullable(*data) | 210 | 28 | ? check_and_get_column<ColumnType>( | 211 | 28 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 28 | : check_and_get_column<ColumnType>(&*data); | 213 | 28 | if (!column) { | 214 | 28 | return false; | 215 | 28 | } | 216 | | | 217 | 0 | ColumnPtr res_column = create_column_func(column); | 218 | 0 | res_column = make_nullable(res_column); | 219 | 0 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | |
| 221 | 0 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 0 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 0 | Arena arena; | 224 | 0 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 0 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 0 | function->check_input_columns_type(columns); | 227 | 0 | function->check_result_column_type(*res_column); | 228 | 0 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 0 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 0 | auto end = offsets[i]; | 231 | 0 | bool is_empty = (start == end); | 232 | 0 | if (is_empty) { | 233 | 0 | res_column->assert_mutable()->insert_default(); | 234 | 0 | continue; | 235 | 0 | } | 236 | 0 | function->reset(guard.data()); | 237 | 0 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 0 | is_column_nullable(*data)); | 239 | 0 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 0 | } | 241 | 0 | res_ptr = std::move(res_column); | 242 | 0 | return true; | 243 | 28 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE3EEEZNS2_12execute_typeILS5_3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 28 | CreateColumnFunc create_column_func) { | 205 | 28 | using Function = | 206 | 28 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 28 | const ColumnType* column = | 209 | 28 | is_column_nullable(*data) | 210 | 28 | ? check_and_get_column<ColumnType>( | 211 | 28 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 28 | : check_and_get_column<ColumnType>(&*data); | 213 | 28 | if (!column) { | 214 | 24 | return false; | 215 | 24 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 28 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE4EEEZNS2_12execute_typeILS5_4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 24 | CreateColumnFunc create_column_func) { | 205 | 24 | using Function = | 206 | 24 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 24 | const ColumnType* column = | 209 | 24 | is_column_nullable(*data) | 210 | 24 | ? check_and_get_column<ColumnType>( | 211 | 24 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 24 | : check_and_get_column<ColumnType>(&*data); | 213 | 24 | if (!column) { | 214 | 20 | return false; | 215 | 20 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 24 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE5EEEZNS2_12execute_typeILS5_5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 20 | CreateColumnFunc create_column_func) { | 205 | 20 | using Function = | 206 | 20 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 20 | const ColumnType* column = | 209 | 20 | is_column_nullable(*data) | 210 | 20 | ? check_and_get_column<ColumnType>( | 211 | 20 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 20 | : check_and_get_column<ColumnType>(&*data); | 213 | 20 | if (!column) { | 214 | 16 | return false; | 215 | 16 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 20 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE6EEEZNS2_12execute_typeILS5_6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 16 | CreateColumnFunc create_column_func) { | 205 | 16 | using Function = | 206 | 16 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 16 | const ColumnType* column = | 209 | 16 | is_column_nullable(*data) | 210 | 16 | ? check_and_get_column<ColumnType>( | 211 | 16 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 16 | : check_and_get_column<ColumnType>(&*data); | 213 | 16 | if (!column) { | 214 | 12 | return false; | 215 | 12 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 16 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE7EEEZNS2_12execute_typeILS5_7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 12 | CreateColumnFunc create_column_func) { | 205 | 12 | using Function = | 206 | 12 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 12 | const ColumnType* column = | 209 | 12 | is_column_nullable(*data) | 210 | 12 | ? check_and_get_column<ColumnType>( | 211 | 12 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 12 | : check_and_get_column<ColumnType>(&*data); | 213 | 12 | if (!column) { | 214 | 8 | return false; | 215 | 8 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 12 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE8EEEZNS2_12execute_typeILS5_8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 8 | CreateColumnFunc create_column_func) { | 205 | 8 | using Function = | 206 | 8 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 8 | const ColumnType* column = | 209 | 8 | is_column_nullable(*data) | 210 | 8 | ? check_and_get_column<ColumnType>( | 211 | 8 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 8 | : check_and_get_column<ColumnType>(&*data); | 213 | 8 | if (!column) { | 214 | 4 | return false; | 215 | 4 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 8 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE9EEEZNS2_12execute_typeILS5_9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 4 | CreateColumnFunc create_column_func) { | 205 | 4 | using Function = | 206 | 4 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 4 | const ColumnType* column = | 209 | 4 | is_column_nullable(*data) | 210 | 4 | ? check_and_get_column<ColumnType>( | 211 | 4 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 4 | : check_and_get_column<ColumnType>(&*data); | 213 | 4 | if (!column) { | 214 | 0 | return false; | 215 | 0 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 4 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE2EEEZNS2_12execute_typeILS5_2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 28 | CreateColumnFunc create_column_func) { | 205 | 28 | using Function = | 206 | 28 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 28 | const ColumnType* column = | 209 | 28 | is_column_nullable(*data) | 210 | 28 | ? check_and_get_column<ColumnType>( | 211 | 28 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 28 | : check_and_get_column<ColumnType>(&*data); | 213 | 28 | if (!column) { | 214 | 28 | return false; | 215 | 28 | } | 216 | | | 217 | 0 | ColumnPtr res_column = create_column_func(column); | 218 | 0 | res_column = make_nullable(res_column); | 219 | 0 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | |
| 221 | 0 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 0 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 0 | Arena arena; | 224 | 0 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 0 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 0 | function->check_input_columns_type(columns); | 227 | 0 | function->check_result_column_type(*res_column); | 228 | 0 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 0 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 0 | auto end = offsets[i]; | 231 | 0 | bool is_empty = (start == end); | 232 | 0 | if (is_empty) { | 233 | 0 | res_column->assert_mutable()->insert_default(); | 234 | 0 | continue; | 235 | 0 | } | 236 | 0 | function->reset(guard.data()); | 237 | 0 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 0 | is_column_nullable(*data)); | 239 | 0 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 0 | } | 241 | 0 | res_ptr = std::move(res_column); | 242 | 0 | return true; | 243 | 28 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE3EEEZNS2_12execute_typeILS5_3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 28 | CreateColumnFunc create_column_func) { | 205 | 28 | using Function = | 206 | 28 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 28 | const ColumnType* column = | 209 | 28 | is_column_nullable(*data) | 210 | 28 | ? check_and_get_column<ColumnType>( | 211 | 28 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 28 | : check_and_get_column<ColumnType>(&*data); | 213 | 28 | if (!column) { | 214 | 24 | return false; | 215 | 24 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 28 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE4EEEZNS2_12execute_typeILS5_4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 24 | CreateColumnFunc create_column_func) { | 205 | 24 | using Function = | 206 | 24 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 24 | const ColumnType* column = | 209 | 24 | is_column_nullable(*data) | 210 | 24 | ? check_and_get_column<ColumnType>( | 211 | 24 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 24 | : check_and_get_column<ColumnType>(&*data); | 213 | 24 | if (!column) { | 214 | 20 | return false; | 215 | 20 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 24 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE5EEEZNS2_12execute_typeILS5_5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 20 | CreateColumnFunc create_column_func) { | 205 | 20 | using Function = | 206 | 20 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 20 | const ColumnType* column = | 209 | 20 | is_column_nullable(*data) | 210 | 20 | ? check_and_get_column<ColumnType>( | 211 | 20 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 20 | : check_and_get_column<ColumnType>(&*data); | 213 | 20 | if (!column) { | 214 | 16 | return false; | 215 | 16 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 20 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE6EEEZNS2_12execute_typeILS5_6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 16 | CreateColumnFunc create_column_func) { | 205 | 16 | using Function = | 206 | 16 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 16 | const ColumnType* column = | 209 | 16 | is_column_nullable(*data) | 210 | 16 | ? check_and_get_column<ColumnType>( | 211 | 16 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 16 | : check_and_get_column<ColumnType>(&*data); | 213 | 16 | if (!column) { | 214 | 12 | return false; | 215 | 12 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 16 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE7EEEZNS2_12execute_typeILS5_7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 12 | CreateColumnFunc create_column_func) { | 205 | 12 | using Function = | 206 | 12 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 12 | const ColumnType* column = | 209 | 12 | is_column_nullable(*data) | 210 | 12 | ? check_and_get_column<ColumnType>( | 211 | 12 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 12 | : check_and_get_column<ColumnType>(&*data); | 213 | 12 | if (!column) { | 214 | 8 | return false; | 215 | 8 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 12 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE8EEEZNS2_12execute_typeILS5_8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 8 | CreateColumnFunc create_column_func) { | 205 | 8 | using Function = | 206 | 8 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 8 | const ColumnType* column = | 209 | 8 | is_column_nullable(*data) | 210 | 8 | ? check_and_get_column<ColumnType>( | 211 | 8 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 8 | : check_and_get_column<ColumnType>(&*data); | 213 | 8 | if (!column) { | 214 | 4 | return false; | 215 | 4 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 8 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE9EEEZNS2_12execute_typeILS5_9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 4 | CreateColumnFunc create_column_func) { | 205 | 4 | using Function = | 206 | 4 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 4 | const ColumnType* column = | 209 | 4 | is_column_nullable(*data) | 210 | 4 | ? check_and_get_column<ColumnType>( | 211 | 4 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 4 | : check_and_get_column<ColumnType>(&*data); | 213 | 4 | if (!column) { | 214 | 0 | return false; | 215 | 0 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 4 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE2EEEZNS2_12execute_typeILS5_2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 20 | CreateColumnFunc create_column_func) { | 205 | 20 | using Function = | 206 | 20 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 20 | const ColumnType* column = | 209 | 20 | is_column_nullable(*data) | 210 | 20 | ? check_and_get_column<ColumnType>( | 211 | 20 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 20 | : check_and_get_column<ColumnType>(&*data); | 213 | 20 | if (!column) { | 214 | 20 | return false; | 215 | 20 | } | 216 | | | 217 | 0 | ColumnPtr res_column = create_column_func(column); | 218 | 0 | res_column = make_nullable(res_column); | 219 | 0 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | |
| 221 | 0 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 0 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 0 | Arena arena; | 224 | 0 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 0 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 0 | function->check_input_columns_type(columns); | 227 | 0 | function->check_result_column_type(*res_column); | 228 | 0 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 0 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 0 | auto end = offsets[i]; | 231 | 0 | bool is_empty = (start == end); | 232 | 0 | if (is_empty) { | 233 | 0 | res_column->assert_mutable()->insert_default(); | 234 | 0 | continue; | 235 | 0 | } | 236 | 0 | function->reset(guard.data()); | 237 | 0 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 0 | is_column_nullable(*data)); | 239 | 0 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 0 | } | 241 | 0 | res_ptr = std::move(res_column); | 242 | 0 | return true; | 243 | 20 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE3EEEZNS2_12execute_typeILS5_3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 20 | CreateColumnFunc create_column_func) { | 205 | 20 | using Function = | 206 | 20 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 20 | const ColumnType* column = | 209 | 20 | is_column_nullable(*data) | 210 | 20 | ? check_and_get_column<ColumnType>( | 211 | 20 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 20 | : check_and_get_column<ColumnType>(&*data); | 213 | 20 | if (!column) { | 214 | 20 | return false; | 215 | 20 | } | 216 | | | 217 | 0 | ColumnPtr res_column = create_column_func(column); | 218 | 0 | res_column = make_nullable(res_column); | 219 | 0 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | |
| 221 | 0 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 0 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 0 | Arena arena; | 224 | 0 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 0 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 0 | function->check_input_columns_type(columns); | 227 | 0 | function->check_result_column_type(*res_column); | 228 | 0 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 0 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 0 | auto end = offsets[i]; | 231 | 0 | bool is_empty = (start == end); | 232 | 0 | if (is_empty) { | 233 | 0 | res_column->assert_mutable()->insert_default(); | 234 | 0 | continue; | 235 | 0 | } | 236 | 0 | function->reset(guard.data()); | 237 | 0 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 0 | is_column_nullable(*data)); | 239 | 0 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 0 | } | 241 | 0 | res_ptr = std::move(res_column); | 242 | 0 | return true; | 243 | 20 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE4EEEZNS2_12execute_typeILS5_4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 20 | CreateColumnFunc create_column_func) { | 205 | 20 | using Function = | 206 | 20 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 20 | const ColumnType* column = | 209 | 20 | is_column_nullable(*data) | 210 | 20 | ? check_and_get_column<ColumnType>( | 211 | 20 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 20 | : check_and_get_column<ColumnType>(&*data); | 213 | 20 | if (!column) { | 214 | 20 | return false; | 215 | 20 | } | 216 | | | 217 | 0 | ColumnPtr res_column = create_column_func(column); | 218 | 0 | res_column = make_nullable(res_column); | 219 | 0 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | |
| 221 | 0 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 0 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 0 | Arena arena; | 224 | 0 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 0 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 0 | function->check_input_columns_type(columns); | 227 | 0 | function->check_result_column_type(*res_column); | 228 | 0 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 0 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 0 | auto end = offsets[i]; | 231 | 0 | bool is_empty = (start == end); | 232 | 0 | if (is_empty) { | 233 | 0 | res_column->assert_mutable()->insert_default(); | 234 | 0 | continue; | 235 | 0 | } | 236 | 0 | function->reset(guard.data()); | 237 | 0 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 0 | is_column_nullable(*data)); | 239 | 0 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 0 | } | 241 | 0 | res_ptr = std::move(res_column); | 242 | 0 | return true; | 243 | 20 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE5EEEZNS2_12execute_typeILS5_5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 20 | CreateColumnFunc create_column_func) { | 205 | 20 | using Function = | 206 | 20 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 20 | const ColumnType* column = | 209 | 20 | is_column_nullable(*data) | 210 | 20 | ? check_and_get_column<ColumnType>( | 211 | 20 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 20 | : check_and_get_column<ColumnType>(&*data); | 213 | 20 | if (!column) { | 214 | 16 | return false; | 215 | 16 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 20 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE6EEEZNS2_12execute_typeILS5_6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 16 | CreateColumnFunc create_column_func) { | 205 | 16 | using Function = | 206 | 16 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 16 | const ColumnType* column = | 209 | 16 | is_column_nullable(*data) | 210 | 16 | ? check_and_get_column<ColumnType>( | 211 | 16 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 16 | : check_and_get_column<ColumnType>(&*data); | 213 | 16 | if (!column) { | 214 | 12 | return false; | 215 | 12 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 16 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE7EEEZNS2_12execute_typeILS5_7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 12 | CreateColumnFunc create_column_func) { | 205 | 12 | using Function = | 206 | 12 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 12 | const ColumnType* column = | 209 | 12 | is_column_nullable(*data) | 210 | 12 | ? check_and_get_column<ColumnType>( | 211 | 12 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 12 | : check_and_get_column<ColumnType>(&*data); | 213 | 12 | if (!column) { | 214 | 8 | return false; | 215 | 8 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 12 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE8EEEZNS2_12execute_typeILS5_8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 8 | CreateColumnFunc create_column_func) { | 205 | 8 | using Function = | 206 | 8 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 8 | const ColumnType* column = | 209 | 8 | is_column_nullable(*data) | 210 | 8 | ? check_and_get_column<ColumnType>( | 211 | 8 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 8 | : check_and_get_column<ColumnType>(&*data); | 213 | 8 | if (!column) { | 214 | 4 | return false; | 215 | 4 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 8 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE9EEEZNS2_12execute_typeILS5_9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 4 | CreateColumnFunc create_column_func) { | 205 | 4 | using Function = | 206 | 4 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 4 | const ColumnType* column = | 209 | 4 | is_column_nullable(*data) | 210 | 4 | ? check_and_get_column<ColumnType>( | 211 | 4 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 4 | : check_and_get_column<ColumnType>(&*data); | 213 | 4 | if (!column) { | 214 | 0 | return false; | 215 | 0 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 4 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE36EEEZNS2_12execute_typeILS5_36EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 36 | CreateColumnFunc create_column_func) { | 205 | 36 | using Function = | 206 | 36 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 36 | const ColumnType* column = | 209 | 36 | is_column_nullable(*data) | 210 | 36 | ? check_and_get_column<ColumnType>( | 211 | 36 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 36 | : check_and_get_column<ColumnType>(&*data); | 213 | 36 | if (!column) { | 214 | 32 | return false; | 215 | 32 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 36 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE37EEEZNS2_12execute_typeILS5_37EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 32 | CreateColumnFunc create_column_func) { | 205 | 32 | using Function = | 206 | 32 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 32 | const ColumnType* column = | 209 | 32 | is_column_nullable(*data) | 210 | 32 | ? check_and_get_column<ColumnType>( | 211 | 32 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 32 | : check_and_get_column<ColumnType>(&*data); | 213 | 32 | if (!column) { | 214 | 28 | return false; | 215 | 28 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 32 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE2EEEZNS2_12execute_typeILS5_2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 28 | CreateColumnFunc create_column_func) { | 205 | 28 | using Function = | 206 | 28 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 28 | const ColumnType* column = | 209 | 28 | is_column_nullable(*data) | 210 | 28 | ? check_and_get_column<ColumnType>( | 211 | 28 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 28 | : check_and_get_column<ColumnType>(&*data); | 213 | 28 | if (!column) { | 214 | 28 | return false; | 215 | 28 | } | 216 | | | 217 | 0 | ColumnPtr res_column = create_column_func(column); | 218 | 0 | res_column = make_nullable(res_column); | 219 | 0 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | |
| 221 | 0 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 0 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 0 | Arena arena; | 224 | 0 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 0 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 0 | function->check_input_columns_type(columns); | 227 | 0 | function->check_result_column_type(*res_column); | 228 | 0 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 0 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 0 | auto end = offsets[i]; | 231 | 0 | bool is_empty = (start == end); | 232 | 0 | if (is_empty) { | 233 | 0 | res_column->assert_mutable()->insert_default(); | 234 | 0 | continue; | 235 | 0 | } | 236 | 0 | function->reset(guard.data()); | 237 | 0 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 0 | is_column_nullable(*data)); | 239 | 0 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 0 | } | 241 | 0 | res_ptr = std::move(res_column); | 242 | 0 | return true; | 243 | 28 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE3EEEZNS2_12execute_typeILS5_3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 28 | CreateColumnFunc create_column_func) { | 205 | 28 | using Function = | 206 | 28 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 28 | const ColumnType* column = | 209 | 28 | is_column_nullable(*data) | 210 | 28 | ? check_and_get_column<ColumnType>( | 211 | 28 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 28 | : check_and_get_column<ColumnType>(&*data); | 213 | 28 | if (!column) { | 214 | 24 | return false; | 215 | 24 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 28 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE4EEEZNS2_12execute_typeILS5_4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 24 | CreateColumnFunc create_column_func) { | 205 | 24 | using Function = | 206 | 24 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 24 | const ColumnType* column = | 209 | 24 | is_column_nullable(*data) | 210 | 24 | ? check_and_get_column<ColumnType>( | 211 | 24 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 24 | : check_and_get_column<ColumnType>(&*data); | 213 | 24 | if (!column) { | 214 | 20 | return false; | 215 | 20 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 24 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE5EEEZNS2_12execute_typeILS5_5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 20 | CreateColumnFunc create_column_func) { | 205 | 20 | using Function = | 206 | 20 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 20 | const ColumnType* column = | 209 | 20 | is_column_nullable(*data) | 210 | 20 | ? check_and_get_column<ColumnType>( | 211 | 20 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 20 | : check_and_get_column<ColumnType>(&*data); | 213 | 20 | if (!column) { | 214 | 16 | return false; | 215 | 16 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 20 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE6EEEZNS2_12execute_typeILS5_6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 16 | CreateColumnFunc create_column_func) { | 205 | 16 | using Function = | 206 | 16 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 16 | const ColumnType* column = | 209 | 16 | is_column_nullable(*data) | 210 | 16 | ? check_and_get_column<ColumnType>( | 211 | 16 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 16 | : check_and_get_column<ColumnType>(&*data); | 213 | 16 | if (!column) { | 214 | 12 | return false; | 215 | 12 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 16 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE7EEEZNS2_12execute_typeILS5_7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 12 | CreateColumnFunc create_column_func) { | 205 | 12 | using Function = | 206 | 12 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 12 | const ColumnType* column = | 209 | 12 | is_column_nullable(*data) | 210 | 12 | ? check_and_get_column<ColumnType>( | 211 | 12 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 12 | : check_and_get_column<ColumnType>(&*data); | 213 | 12 | if (!column) { | 214 | 8 | return false; | 215 | 8 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 12 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE8EEEZNS2_12execute_typeILS5_8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 8 | CreateColumnFunc create_column_func) { | 205 | 8 | using Function = | 206 | 8 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 8 | const ColumnType* column = | 209 | 8 | is_column_nullable(*data) | 210 | 8 | ? check_and_get_column<ColumnType>( | 211 | 8 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 8 | : check_and_get_column<ColumnType>(&*data); | 213 | 8 | if (!column) { | 214 | 4 | return false; | 215 | 4 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 8 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE9EEEZNS2_12execute_typeILS5_9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 4 | CreateColumnFunc create_column_func) { | 205 | 4 | using Function = | 206 | 4 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 4 | const ColumnType* column = | 209 | 4 | is_column_nullable(*data) | 210 | 4 | ? check_and_get_column<ColumnType>( | 211 | 4 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 4 | : check_and_get_column<ColumnType>(&*data); | 213 | 4 | if (!column) { | 214 | 0 | return false; | 215 | 0 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 4 | } |
Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_13ColumnDecimalILNS_13PrimitiveTypeE28EEEZNS2_12execute_typeILS5_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_13ColumnDecimalILNS_13PrimitiveTypeE29EEEZNS2_12execute_typeILS5_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_13ColumnDecimalILNS_13PrimitiveTypeE30EEEZNS2_12execute_typeILS5_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_13ColumnDecimalILNS_13PrimitiveTypeE35EEEZNS2_12execute_typeILS5_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE25EEEZNS2_12execute_typeILS5_25EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE26EEEZNS2_12execute_typeILS5_26EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE42EEEZNS2_12execute_typeILS5_42EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_9ColumnStrIjEEZNS2_12execute_typeILNS_13PrimitiveTypeE10EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS5_E_EEbSD_SJ_SL_SS_T0_ _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE36EEEZNS2_12execute_typeILS5_36EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 36 | CreateColumnFunc create_column_func) { | 205 | 36 | using Function = | 206 | 36 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 36 | const ColumnType* column = | 209 | 36 | is_column_nullable(*data) | 210 | 36 | ? check_and_get_column<ColumnType>( | 211 | 36 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 36 | : check_and_get_column<ColumnType>(&*data); | 213 | 36 | if (!column) { | 214 | 32 | return false; | 215 | 32 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 36 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE37EEEZNS2_12execute_typeILS5_37EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 32 | CreateColumnFunc create_column_func) { | 205 | 32 | using Function = | 206 | 32 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 32 | const ColumnType* column = | 209 | 32 | is_column_nullable(*data) | 210 | 32 | ? check_and_get_column<ColumnType>( | 211 | 32 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 32 | : check_and_get_column<ColumnType>(&*data); | 213 | 32 | if (!column) { | 214 | 28 | return false; | 215 | 28 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 32 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE2EEEZNS2_12execute_typeILS5_2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 28 | CreateColumnFunc create_column_func) { | 205 | 28 | using Function = | 206 | 28 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 28 | const ColumnType* column = | 209 | 28 | is_column_nullable(*data) | 210 | 28 | ? check_and_get_column<ColumnType>( | 211 | 28 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 28 | : check_and_get_column<ColumnType>(&*data); | 213 | 28 | if (!column) { | 214 | 28 | return false; | 215 | 28 | } | 216 | | | 217 | 0 | ColumnPtr res_column = create_column_func(column); | 218 | 0 | res_column = make_nullable(res_column); | 219 | 0 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | |
| 221 | 0 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 0 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 0 | Arena arena; | 224 | 0 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 0 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 0 | function->check_input_columns_type(columns); | 227 | 0 | function->check_result_column_type(*res_column); | 228 | 0 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 0 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 0 | auto end = offsets[i]; | 231 | 0 | bool is_empty = (start == end); | 232 | 0 | if (is_empty) { | 233 | 0 | res_column->assert_mutable()->insert_default(); | 234 | 0 | continue; | 235 | 0 | } | 236 | 0 | function->reset(guard.data()); | 237 | 0 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 0 | is_column_nullable(*data)); | 239 | 0 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 0 | } | 241 | 0 | res_ptr = std::move(res_column); | 242 | 0 | return true; | 243 | 28 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE3EEEZNS2_12execute_typeILS5_3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 28 | CreateColumnFunc create_column_func) { | 205 | 28 | using Function = | 206 | 28 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 28 | const ColumnType* column = | 209 | 28 | is_column_nullable(*data) | 210 | 28 | ? check_and_get_column<ColumnType>( | 211 | 28 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 28 | : check_and_get_column<ColumnType>(&*data); | 213 | 28 | if (!column) { | 214 | 24 | return false; | 215 | 24 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 28 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE4EEEZNS2_12execute_typeILS5_4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 24 | CreateColumnFunc create_column_func) { | 205 | 24 | using Function = | 206 | 24 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 24 | const ColumnType* column = | 209 | 24 | is_column_nullable(*data) | 210 | 24 | ? check_and_get_column<ColumnType>( | 211 | 24 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 24 | : check_and_get_column<ColumnType>(&*data); | 213 | 24 | if (!column) { | 214 | 20 | return false; | 215 | 20 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 24 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE5EEEZNS2_12execute_typeILS5_5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 20 | CreateColumnFunc create_column_func) { | 205 | 20 | using Function = | 206 | 20 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 20 | const ColumnType* column = | 209 | 20 | is_column_nullable(*data) | 210 | 20 | ? check_and_get_column<ColumnType>( | 211 | 20 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 20 | : check_and_get_column<ColumnType>(&*data); | 213 | 20 | if (!column) { | 214 | 16 | return false; | 215 | 16 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 20 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE6EEEZNS2_12execute_typeILS5_6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 16 | CreateColumnFunc create_column_func) { | 205 | 16 | using Function = | 206 | 16 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 16 | const ColumnType* column = | 209 | 16 | is_column_nullable(*data) | 210 | 16 | ? check_and_get_column<ColumnType>( | 211 | 16 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 16 | : check_and_get_column<ColumnType>(&*data); | 213 | 16 | if (!column) { | 214 | 12 | return false; | 215 | 12 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 16 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE7EEEZNS2_12execute_typeILS5_7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 12 | CreateColumnFunc create_column_func) { | 205 | 12 | using Function = | 206 | 12 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 12 | const ColumnType* column = | 209 | 12 | is_column_nullable(*data) | 210 | 12 | ? check_and_get_column<ColumnType>( | 211 | 12 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 12 | : check_and_get_column<ColumnType>(&*data); | 213 | 12 | if (!column) { | 214 | 8 | return false; | 215 | 8 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 12 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE8EEEZNS2_12execute_typeILS5_8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 8 | CreateColumnFunc create_column_func) { | 205 | 8 | using Function = | 206 | 8 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 8 | const ColumnType* column = | 209 | 8 | is_column_nullable(*data) | 210 | 8 | ? check_and_get_column<ColumnType>( | 211 | 8 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 8 | : check_and_get_column<ColumnType>(&*data); | 213 | 8 | if (!column) { | 214 | 4 | return false; | 215 | 4 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 8 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE9EEEZNS2_12execute_typeILS5_9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 4 | CreateColumnFunc create_column_func) { | 205 | 4 | using Function = | 206 | 4 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 4 | const ColumnType* column = | 209 | 4 | is_column_nullable(*data) | 210 | 4 | ? check_and_get_column<ColumnType>( | 211 | 4 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 4 | : check_and_get_column<ColumnType>(&*data); | 213 | 4 | if (!column) { | 214 | 0 | return false; | 215 | 0 | } | 216 | | | 217 | 4 | ColumnPtr res_column = create_column_func(column); | 218 | 4 | res_column = make_nullable(res_column); | 219 | 4 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 4 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 4 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 4 | Arena arena; | 224 | 4 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 4 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 4 | function->check_input_columns_type(columns); | 227 | 4 | function->check_result_column_type(*res_column); | 228 | 14 | for (int64_t i = 0; i < offsets.size(); ++i) { | 229 | 10 | auto start = offsets[i - 1]; // -1 is ok. | 230 | 10 | auto end = offsets[i]; | 231 | 10 | bool is_empty = (start == end); | 232 | 10 | if (is_empty) { | 233 | 4 | res_column->assert_mutable()->insert_default(); | 234 | 4 | continue; | 235 | 4 | } | 236 | 6 | function->reset(guard.data()); | 237 | 6 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 238 | 6 | is_column_nullable(*data)); | 239 | 6 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); | 240 | 6 | } | 241 | 4 | res_ptr = std::move(res_column); | 242 | 4 | return true; | 243 | 4 | } |
Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_13ColumnDecimalILNS_13PrimitiveTypeE28EEEZNS2_12execute_typeILS5_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_13ColumnDecimalILNS_13PrimitiveTypeE29EEEZNS2_12execute_typeILS5_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_13ColumnDecimalILNS_13PrimitiveTypeE30EEEZNS2_12execute_typeILS5_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_13ColumnDecimalILNS_13PrimitiveTypeE35EEEZNS2_12execute_typeILS5_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE25EEEZNS2_12execute_typeILS5_25EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE26EEEZNS2_12execute_typeILS5_26EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE42EEEZNS2_12execute_typeILS5_42EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_9ColumnStrIjEEZNS2_12execute_typeILNS_13PrimitiveTypeE10EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS5_E_EEbSD_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE17execute_type_implINS_9ColumnStrIjEEZNS2_12execute_typeILNS_13PrimitiveTypeE10EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS5_E_EEbSD_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE17execute_type_implINS_9ColumnStrIjEEZNS2_12execute_typeILNS_13PrimitiveTypeE10EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS5_E_EEbSD_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE17execute_type_implINS_9ColumnStrIjEEZNS2_12execute_typeILNS_13PrimitiveTypeE10EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS5_E_EEbSD_SJ_SL_SS_T0_ |
244 | | |
245 | | template <PrimitiveType Element> |
246 | | static bool execute_type(ColumnPtr& res_ptr, const DataTypePtr& type, const IColumn* data, |
247 | 816 | const ColumnArray::Offsets64& offsets) { |
248 | 816 | if constexpr (is_string_type(Element)) { |
249 | 0 | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || |
250 | 0 | operation == AggregateOperation::AVERAGE) { |
251 | 0 | return false; |
252 | 0 | } |
253 | | |
254 | 0 | auto create_column = [](const ColumnString*) -> ColumnPtr { |
255 | 0 | return ColumnString::create(); |
256 | 0 | }; Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE10EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_9ColumnStrIjEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE10EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_9ColumnStrIjEEE_clEST_ |
257 | |
|
258 | 0 | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, |
259 | 0 | offsets, create_column); |
260 | 816 | } else { |
261 | | if constexpr ((operation == AggregateOperation::SUM || |
262 | | operation == AggregateOperation::PRODUCT || |
263 | | operation == AggregateOperation::AVERAGE) && |
264 | | (is_date_type(Element) || is_timestamptz_type(Element) || |
265 | 0 | is_decimalv3(Element))) { |
266 | 0 | return false; |
267 | 816 | } else { |
268 | 816 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; |
269 | 816 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< |
270 | 816 | operation>::template TypeTraits<Element>::ResultType; |
271 | 816 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; |
272 | | |
273 | 816 | auto create_column = [](const ColVecType* column) -> ColumnPtr { |
274 | 148 | if constexpr (is_decimal(Element)) { |
275 | 0 | return ColVecResultType::create(0, column->get_scale()); |
276 | 148 | } else { |
277 | 148 | return ColVecResultType::create(); |
278 | 148 | } |
279 | 148 | }; Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_2EEEE_clEST_ _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_3EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_4EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_5EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_6EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_7EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_8EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_9EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_2EEEE_clEST_ _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_3EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_4EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_5EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_6EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_7EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_8EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_9EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_2EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_3EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_4EEEE_clEST_ _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_5EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_6EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_7EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_8EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_9EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE36EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_36EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE37EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_37EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_2EEEE_clEST_ _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_3EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_4EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_5EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_6EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_7EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_8EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_9EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS4_28EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS4_29EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS4_30EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS4_35EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE25EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_25EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE26EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_26EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE42EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_42EEEE_clEST_ _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE36EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_36EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE37EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_37EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_2EEEE_clEST_ _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_3EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_4EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_5EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_6EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_7EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_8EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_9EEEE_clEST_ Line | Count | Source | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | | if constexpr (is_decimal(Element)) { | 275 | | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; |
Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS4_28EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS4_29EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS4_30EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS4_35EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE25EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_25EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE26EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_26EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE42EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_42EEEE_clEST_ |
280 | | |
281 | 816 | return execute_type_impl<ColVecType, decltype(create_column)>( |
282 | 816 | res_ptr, type, data, offsets, create_column); |
283 | 816 | } |
284 | 816 | } |
285 | 816 | } _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 28 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 28 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 28 | } else { | 268 | 28 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 28 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 28 | operation>::template TypeTraits<Element>::ResultType; | 271 | 28 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 28 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 28 | if constexpr (is_decimal(Element)) { | 275 | 28 | return ColVecResultType::create(0, column->get_scale()); | 276 | 28 | } else { | 277 | 28 | return ColVecResultType::create(); | 278 | 28 | } | 279 | 28 | }; | 280 | | | 281 | 28 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 28 | res_ptr, type, data, offsets, create_column); | 283 | 28 | } | 284 | 28 | } | 285 | 28 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 28 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 28 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 28 | } else { | 268 | 28 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 28 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 28 | operation>::template TypeTraits<Element>::ResultType; | 271 | 28 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 28 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 28 | if constexpr (is_decimal(Element)) { | 275 | 28 | return ColVecResultType::create(0, column->get_scale()); | 276 | 28 | } else { | 277 | 28 | return ColVecResultType::create(); | 278 | 28 | } | 279 | 28 | }; | 280 | | | 281 | 28 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 28 | res_ptr, type, data, offsets, create_column); | 283 | 28 | } | 284 | 28 | } | 285 | 28 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 24 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 24 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 24 | } else { | 268 | 24 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 24 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 24 | operation>::template TypeTraits<Element>::ResultType; | 271 | 24 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 24 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 24 | if constexpr (is_decimal(Element)) { | 275 | 24 | return ColVecResultType::create(0, column->get_scale()); | 276 | 24 | } else { | 277 | 24 | return ColVecResultType::create(); | 278 | 24 | } | 279 | 24 | }; | 280 | | | 281 | 24 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 24 | res_ptr, type, data, offsets, create_column); | 283 | 24 | } | 284 | 24 | } | 285 | 24 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 20 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 20 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 20 | } else { | 268 | 20 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 20 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 20 | operation>::template TypeTraits<Element>::ResultType; | 271 | 20 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 20 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 20 | if constexpr (is_decimal(Element)) { | 275 | 20 | return ColVecResultType::create(0, column->get_scale()); | 276 | 20 | } else { | 277 | 20 | return ColVecResultType::create(); | 278 | 20 | } | 279 | 20 | }; | 280 | | | 281 | 20 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 20 | res_ptr, type, data, offsets, create_column); | 283 | 20 | } | 284 | 20 | } | 285 | 20 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 16 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 16 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 16 | } else { | 268 | 16 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 16 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 16 | operation>::template TypeTraits<Element>::ResultType; | 271 | 16 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 16 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 16 | if constexpr (is_decimal(Element)) { | 275 | 16 | return ColVecResultType::create(0, column->get_scale()); | 276 | 16 | } else { | 277 | 16 | return ColVecResultType::create(); | 278 | 16 | } | 279 | 16 | }; | 280 | | | 281 | 16 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 16 | res_ptr, type, data, offsets, create_column); | 283 | 16 | } | 284 | 16 | } | 285 | 16 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 12 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 12 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 12 | } else { | 268 | 12 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 12 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 12 | operation>::template TypeTraits<Element>::ResultType; | 271 | 12 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 12 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 12 | if constexpr (is_decimal(Element)) { | 275 | 12 | return ColVecResultType::create(0, column->get_scale()); | 276 | 12 | } else { | 277 | 12 | return ColVecResultType::create(); | 278 | 12 | } | 279 | 12 | }; | 280 | | | 281 | 12 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 12 | res_ptr, type, data, offsets, create_column); | 283 | 12 | } | 284 | 12 | } | 285 | 12 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 8 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 8 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 8 | } else { | 268 | 8 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 8 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 8 | operation>::template TypeTraits<Element>::ResultType; | 271 | 8 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 8 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 8 | if constexpr (is_decimal(Element)) { | 275 | 8 | return ColVecResultType::create(0, column->get_scale()); | 276 | 8 | } else { | 277 | 8 | return ColVecResultType::create(); | 278 | 8 | } | 279 | 8 | }; | 280 | | | 281 | 8 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 8 | res_ptr, type, data, offsets, create_column); | 283 | 8 | } | 284 | 8 | } | 285 | 8 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 4 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 4 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 4 | } else { | 268 | 4 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 4 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 4 | operation>::template TypeTraits<Element>::ResultType; | 271 | 4 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 4 | if constexpr (is_decimal(Element)) { | 275 | 4 | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; | 280 | | | 281 | 4 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 4 | res_ptr, type, data, offsets, create_column); | 283 | 4 | } | 284 | 4 | } | 285 | 4 | } |
Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE25EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE26EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE42EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE10EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 28 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 28 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 28 | } else { | 268 | 28 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 28 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 28 | operation>::template TypeTraits<Element>::ResultType; | 271 | 28 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 28 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 28 | if constexpr (is_decimal(Element)) { | 275 | 28 | return ColVecResultType::create(0, column->get_scale()); | 276 | 28 | } else { | 277 | 28 | return ColVecResultType::create(); | 278 | 28 | } | 279 | 28 | }; | 280 | | | 281 | 28 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 28 | res_ptr, type, data, offsets, create_column); | 283 | 28 | } | 284 | 28 | } | 285 | 28 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 28 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 28 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 28 | } else { | 268 | 28 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 28 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 28 | operation>::template TypeTraits<Element>::ResultType; | 271 | 28 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 28 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 28 | if constexpr (is_decimal(Element)) { | 275 | 28 | return ColVecResultType::create(0, column->get_scale()); | 276 | 28 | } else { | 277 | 28 | return ColVecResultType::create(); | 278 | 28 | } | 279 | 28 | }; | 280 | | | 281 | 28 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 28 | res_ptr, type, data, offsets, create_column); | 283 | 28 | } | 284 | 28 | } | 285 | 28 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 24 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 24 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 24 | } else { | 268 | 24 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 24 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 24 | operation>::template TypeTraits<Element>::ResultType; | 271 | 24 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 24 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 24 | if constexpr (is_decimal(Element)) { | 275 | 24 | return ColVecResultType::create(0, column->get_scale()); | 276 | 24 | } else { | 277 | 24 | return ColVecResultType::create(); | 278 | 24 | } | 279 | 24 | }; | 280 | | | 281 | 24 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 24 | res_ptr, type, data, offsets, create_column); | 283 | 24 | } | 284 | 24 | } | 285 | 24 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 20 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 20 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 20 | } else { | 268 | 20 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 20 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 20 | operation>::template TypeTraits<Element>::ResultType; | 271 | 20 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 20 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 20 | if constexpr (is_decimal(Element)) { | 275 | 20 | return ColVecResultType::create(0, column->get_scale()); | 276 | 20 | } else { | 277 | 20 | return ColVecResultType::create(); | 278 | 20 | } | 279 | 20 | }; | 280 | | | 281 | 20 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 20 | res_ptr, type, data, offsets, create_column); | 283 | 20 | } | 284 | 20 | } | 285 | 20 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 16 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 16 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 16 | } else { | 268 | 16 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 16 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 16 | operation>::template TypeTraits<Element>::ResultType; | 271 | 16 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 16 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 16 | if constexpr (is_decimal(Element)) { | 275 | 16 | return ColVecResultType::create(0, column->get_scale()); | 276 | 16 | } else { | 277 | 16 | return ColVecResultType::create(); | 278 | 16 | } | 279 | 16 | }; | 280 | | | 281 | 16 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 16 | res_ptr, type, data, offsets, create_column); | 283 | 16 | } | 284 | 16 | } | 285 | 16 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 12 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 12 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 12 | } else { | 268 | 12 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 12 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 12 | operation>::template TypeTraits<Element>::ResultType; | 271 | 12 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 12 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 12 | if constexpr (is_decimal(Element)) { | 275 | 12 | return ColVecResultType::create(0, column->get_scale()); | 276 | 12 | } else { | 277 | 12 | return ColVecResultType::create(); | 278 | 12 | } | 279 | 12 | }; | 280 | | | 281 | 12 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 12 | res_ptr, type, data, offsets, create_column); | 283 | 12 | } | 284 | 12 | } | 285 | 12 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 8 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 8 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 8 | } else { | 268 | 8 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 8 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 8 | operation>::template TypeTraits<Element>::ResultType; | 271 | 8 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 8 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 8 | if constexpr (is_decimal(Element)) { | 275 | 8 | return ColVecResultType::create(0, column->get_scale()); | 276 | 8 | } else { | 277 | 8 | return ColVecResultType::create(); | 278 | 8 | } | 279 | 8 | }; | 280 | | | 281 | 8 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 8 | res_ptr, type, data, offsets, create_column); | 283 | 8 | } | 284 | 8 | } | 285 | 8 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 4 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 4 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 4 | } else { | 268 | 4 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 4 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 4 | operation>::template TypeTraits<Element>::ResultType; | 271 | 4 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 4 | if constexpr (is_decimal(Element)) { | 275 | 4 | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; | 280 | | | 281 | 4 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 4 | res_ptr, type, data, offsets, create_column); | 283 | 4 | } | 284 | 4 | } | 285 | 4 | } |
Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE25EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE26EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE42EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE10EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 20 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 20 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 20 | } else { | 268 | 20 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 20 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 20 | operation>::template TypeTraits<Element>::ResultType; | 271 | 20 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 20 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 20 | if constexpr (is_decimal(Element)) { | 275 | 20 | return ColVecResultType::create(0, column->get_scale()); | 276 | 20 | } else { | 277 | 20 | return ColVecResultType::create(); | 278 | 20 | } | 279 | 20 | }; | 280 | | | 281 | 20 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 20 | res_ptr, type, data, offsets, create_column); | 283 | 20 | } | 284 | 20 | } | 285 | 20 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 20 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 20 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 20 | } else { | 268 | 20 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 20 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 20 | operation>::template TypeTraits<Element>::ResultType; | 271 | 20 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 20 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 20 | if constexpr (is_decimal(Element)) { | 275 | 20 | return ColVecResultType::create(0, column->get_scale()); | 276 | 20 | } else { | 277 | 20 | return ColVecResultType::create(); | 278 | 20 | } | 279 | 20 | }; | 280 | | | 281 | 20 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 20 | res_ptr, type, data, offsets, create_column); | 283 | 20 | } | 284 | 20 | } | 285 | 20 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 20 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 20 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 20 | } else { | 268 | 20 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 20 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 20 | operation>::template TypeTraits<Element>::ResultType; | 271 | 20 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 20 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 20 | if constexpr (is_decimal(Element)) { | 275 | 20 | return ColVecResultType::create(0, column->get_scale()); | 276 | 20 | } else { | 277 | 20 | return ColVecResultType::create(); | 278 | 20 | } | 279 | 20 | }; | 280 | | | 281 | 20 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 20 | res_ptr, type, data, offsets, create_column); | 283 | 20 | } | 284 | 20 | } | 285 | 20 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 20 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 20 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 20 | } else { | 268 | 20 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 20 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 20 | operation>::template TypeTraits<Element>::ResultType; | 271 | 20 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 20 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 20 | if constexpr (is_decimal(Element)) { | 275 | 20 | return ColVecResultType::create(0, column->get_scale()); | 276 | 20 | } else { | 277 | 20 | return ColVecResultType::create(); | 278 | 20 | } | 279 | 20 | }; | 280 | | | 281 | 20 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 20 | res_ptr, type, data, offsets, create_column); | 283 | 20 | } | 284 | 20 | } | 285 | 20 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 16 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 16 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 16 | } else { | 268 | 16 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 16 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 16 | operation>::template TypeTraits<Element>::ResultType; | 271 | 16 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 16 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 16 | if constexpr (is_decimal(Element)) { | 275 | 16 | return ColVecResultType::create(0, column->get_scale()); | 276 | 16 | } else { | 277 | 16 | return ColVecResultType::create(); | 278 | 16 | } | 279 | 16 | }; | 280 | | | 281 | 16 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 16 | res_ptr, type, data, offsets, create_column); | 283 | 16 | } | 284 | 16 | } | 285 | 16 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 12 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 12 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 12 | } else { | 268 | 12 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 12 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 12 | operation>::template TypeTraits<Element>::ResultType; | 271 | 12 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 12 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 12 | if constexpr (is_decimal(Element)) { | 275 | 12 | return ColVecResultType::create(0, column->get_scale()); | 276 | 12 | } else { | 277 | 12 | return ColVecResultType::create(); | 278 | 12 | } | 279 | 12 | }; | 280 | | | 281 | 12 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 12 | res_ptr, type, data, offsets, create_column); | 283 | 12 | } | 284 | 12 | } | 285 | 12 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 8 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 8 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 8 | } else { | 268 | 8 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 8 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 8 | operation>::template TypeTraits<Element>::ResultType; | 271 | 8 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 8 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 8 | if constexpr (is_decimal(Element)) { | 275 | 8 | return ColVecResultType::create(0, column->get_scale()); | 276 | 8 | } else { | 277 | 8 | return ColVecResultType::create(); | 278 | 8 | } | 279 | 8 | }; | 280 | | | 281 | 8 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 8 | res_ptr, type, data, offsets, create_column); | 283 | 8 | } | 284 | 8 | } | 285 | 8 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 4 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 4 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 4 | } else { | 268 | 4 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 4 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 4 | operation>::template TypeTraits<Element>::ResultType; | 271 | 4 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 4 | if constexpr (is_decimal(Element)) { | 275 | 4 | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; | 280 | | | 281 | 4 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 4 | res_ptr, type, data, offsets, create_column); | 283 | 4 | } | 284 | 4 | } | 285 | 4 | } |
Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE25EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE26EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE42EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE10EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE36EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 36 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 36 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 36 | } else { | 268 | 36 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 36 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 36 | operation>::template TypeTraits<Element>::ResultType; | 271 | 36 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 36 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 36 | if constexpr (is_decimal(Element)) { | 275 | 36 | return ColVecResultType::create(0, column->get_scale()); | 276 | 36 | } else { | 277 | 36 | return ColVecResultType::create(); | 278 | 36 | } | 279 | 36 | }; | 280 | | | 281 | 36 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 36 | res_ptr, type, data, offsets, create_column); | 283 | 36 | } | 284 | 36 | } | 285 | 36 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE37EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 32 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 32 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 32 | } else { | 268 | 32 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 32 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 32 | operation>::template TypeTraits<Element>::ResultType; | 271 | 32 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 32 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 32 | if constexpr (is_decimal(Element)) { | 275 | 32 | return ColVecResultType::create(0, column->get_scale()); | 276 | 32 | } else { | 277 | 32 | return ColVecResultType::create(); | 278 | 32 | } | 279 | 32 | }; | 280 | | | 281 | 32 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 32 | res_ptr, type, data, offsets, create_column); | 283 | 32 | } | 284 | 32 | } | 285 | 32 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 28 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 28 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 28 | } else { | 268 | 28 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 28 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 28 | operation>::template TypeTraits<Element>::ResultType; | 271 | 28 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 28 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 28 | if constexpr (is_decimal(Element)) { | 275 | 28 | return ColVecResultType::create(0, column->get_scale()); | 276 | 28 | } else { | 277 | 28 | return ColVecResultType::create(); | 278 | 28 | } | 279 | 28 | }; | 280 | | | 281 | 28 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 28 | res_ptr, type, data, offsets, create_column); | 283 | 28 | } | 284 | 28 | } | 285 | 28 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 28 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 28 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 28 | } else { | 268 | 28 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 28 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 28 | operation>::template TypeTraits<Element>::ResultType; | 271 | 28 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 28 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 28 | if constexpr (is_decimal(Element)) { | 275 | 28 | return ColVecResultType::create(0, column->get_scale()); | 276 | 28 | } else { | 277 | 28 | return ColVecResultType::create(); | 278 | 28 | } | 279 | 28 | }; | 280 | | | 281 | 28 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 28 | res_ptr, type, data, offsets, create_column); | 283 | 28 | } | 284 | 28 | } | 285 | 28 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 24 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 24 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 24 | } else { | 268 | 24 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 24 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 24 | operation>::template TypeTraits<Element>::ResultType; | 271 | 24 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 24 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 24 | if constexpr (is_decimal(Element)) { | 275 | 24 | return ColVecResultType::create(0, column->get_scale()); | 276 | 24 | } else { | 277 | 24 | return ColVecResultType::create(); | 278 | 24 | } | 279 | 24 | }; | 280 | | | 281 | 24 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 24 | res_ptr, type, data, offsets, create_column); | 283 | 24 | } | 284 | 24 | } | 285 | 24 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 20 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 20 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 20 | } else { | 268 | 20 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 20 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 20 | operation>::template TypeTraits<Element>::ResultType; | 271 | 20 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 20 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 20 | if constexpr (is_decimal(Element)) { | 275 | 20 | return ColVecResultType::create(0, column->get_scale()); | 276 | 20 | } else { | 277 | 20 | return ColVecResultType::create(); | 278 | 20 | } | 279 | 20 | }; | 280 | | | 281 | 20 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 20 | res_ptr, type, data, offsets, create_column); | 283 | 20 | } | 284 | 20 | } | 285 | 20 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 16 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 16 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 16 | } else { | 268 | 16 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 16 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 16 | operation>::template TypeTraits<Element>::ResultType; | 271 | 16 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 16 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 16 | if constexpr (is_decimal(Element)) { | 275 | 16 | return ColVecResultType::create(0, column->get_scale()); | 276 | 16 | } else { | 277 | 16 | return ColVecResultType::create(); | 278 | 16 | } | 279 | 16 | }; | 280 | | | 281 | 16 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 16 | res_ptr, type, data, offsets, create_column); | 283 | 16 | } | 284 | 16 | } | 285 | 16 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 12 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 12 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 12 | } else { | 268 | 12 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 12 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 12 | operation>::template TypeTraits<Element>::ResultType; | 271 | 12 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 12 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 12 | if constexpr (is_decimal(Element)) { | 275 | 12 | return ColVecResultType::create(0, column->get_scale()); | 276 | 12 | } else { | 277 | 12 | return ColVecResultType::create(); | 278 | 12 | } | 279 | 12 | }; | 280 | | | 281 | 12 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 12 | res_ptr, type, data, offsets, create_column); | 283 | 12 | } | 284 | 12 | } | 285 | 12 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 8 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 8 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 8 | } else { | 268 | 8 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 8 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 8 | operation>::template TypeTraits<Element>::ResultType; | 271 | 8 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 8 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 8 | if constexpr (is_decimal(Element)) { | 275 | 8 | return ColVecResultType::create(0, column->get_scale()); | 276 | 8 | } else { | 277 | 8 | return ColVecResultType::create(); | 278 | 8 | } | 279 | 8 | }; | 280 | | | 281 | 8 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 8 | res_ptr, type, data, offsets, create_column); | 283 | 8 | } | 284 | 8 | } | 285 | 8 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 4 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 4 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 4 | } else { | 268 | 4 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 4 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 4 | operation>::template TypeTraits<Element>::ResultType; | 271 | 4 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 4 | if constexpr (is_decimal(Element)) { | 275 | 4 | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; | 280 | | | 281 | 4 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 4 | res_ptr, type, data, offsets, create_column); | 283 | 4 | } | 284 | 4 | } | 285 | 4 | } |
Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE25EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE26EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE42EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE10EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE36EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 36 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 36 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 36 | } else { | 268 | 36 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 36 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 36 | operation>::template TypeTraits<Element>::ResultType; | 271 | 36 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 36 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 36 | if constexpr (is_decimal(Element)) { | 275 | 36 | return ColVecResultType::create(0, column->get_scale()); | 276 | 36 | } else { | 277 | 36 | return ColVecResultType::create(); | 278 | 36 | } | 279 | 36 | }; | 280 | | | 281 | 36 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 36 | res_ptr, type, data, offsets, create_column); | 283 | 36 | } | 284 | 36 | } | 285 | 36 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE37EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 32 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 32 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 32 | } else { | 268 | 32 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 32 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 32 | operation>::template TypeTraits<Element>::ResultType; | 271 | 32 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 32 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 32 | if constexpr (is_decimal(Element)) { | 275 | 32 | return ColVecResultType::create(0, column->get_scale()); | 276 | 32 | } else { | 277 | 32 | return ColVecResultType::create(); | 278 | 32 | } | 279 | 32 | }; | 280 | | | 281 | 32 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 32 | res_ptr, type, data, offsets, create_column); | 283 | 32 | } | 284 | 32 | } | 285 | 32 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 28 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 28 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 28 | } else { | 268 | 28 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 28 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 28 | operation>::template TypeTraits<Element>::ResultType; | 271 | 28 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 28 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 28 | if constexpr (is_decimal(Element)) { | 275 | 28 | return ColVecResultType::create(0, column->get_scale()); | 276 | 28 | } else { | 277 | 28 | return ColVecResultType::create(); | 278 | 28 | } | 279 | 28 | }; | 280 | | | 281 | 28 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 28 | res_ptr, type, data, offsets, create_column); | 283 | 28 | } | 284 | 28 | } | 285 | 28 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 28 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 28 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 28 | } else { | 268 | 28 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 28 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 28 | operation>::template TypeTraits<Element>::ResultType; | 271 | 28 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 28 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 28 | if constexpr (is_decimal(Element)) { | 275 | 28 | return ColVecResultType::create(0, column->get_scale()); | 276 | 28 | } else { | 277 | 28 | return ColVecResultType::create(); | 278 | 28 | } | 279 | 28 | }; | 280 | | | 281 | 28 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 28 | res_ptr, type, data, offsets, create_column); | 283 | 28 | } | 284 | 28 | } | 285 | 28 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 24 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 24 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 24 | } else { | 268 | 24 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 24 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 24 | operation>::template TypeTraits<Element>::ResultType; | 271 | 24 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 24 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 24 | if constexpr (is_decimal(Element)) { | 275 | 24 | return ColVecResultType::create(0, column->get_scale()); | 276 | 24 | } else { | 277 | 24 | return ColVecResultType::create(); | 278 | 24 | } | 279 | 24 | }; | 280 | | | 281 | 24 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 24 | res_ptr, type, data, offsets, create_column); | 283 | 24 | } | 284 | 24 | } | 285 | 24 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 20 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 20 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 20 | } else { | 268 | 20 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 20 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 20 | operation>::template TypeTraits<Element>::ResultType; | 271 | 20 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 20 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 20 | if constexpr (is_decimal(Element)) { | 275 | 20 | return ColVecResultType::create(0, column->get_scale()); | 276 | 20 | } else { | 277 | 20 | return ColVecResultType::create(); | 278 | 20 | } | 279 | 20 | }; | 280 | | | 281 | 20 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 20 | res_ptr, type, data, offsets, create_column); | 283 | 20 | } | 284 | 20 | } | 285 | 20 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 16 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 16 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 16 | } else { | 268 | 16 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 16 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 16 | operation>::template TypeTraits<Element>::ResultType; | 271 | 16 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 16 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 16 | if constexpr (is_decimal(Element)) { | 275 | 16 | return ColVecResultType::create(0, column->get_scale()); | 276 | 16 | } else { | 277 | 16 | return ColVecResultType::create(); | 278 | 16 | } | 279 | 16 | }; | 280 | | | 281 | 16 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 16 | res_ptr, type, data, offsets, create_column); | 283 | 16 | } | 284 | 16 | } | 285 | 16 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 12 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 12 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 12 | } else { | 268 | 12 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 12 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 12 | operation>::template TypeTraits<Element>::ResultType; | 271 | 12 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 12 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 12 | if constexpr (is_decimal(Element)) { | 275 | 12 | return ColVecResultType::create(0, column->get_scale()); | 276 | 12 | } else { | 277 | 12 | return ColVecResultType::create(); | 278 | 12 | } | 279 | 12 | }; | 280 | | | 281 | 12 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 12 | res_ptr, type, data, offsets, create_column); | 283 | 12 | } | 284 | 12 | } | 285 | 12 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 8 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 8 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 8 | } else { | 268 | 8 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 8 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 8 | operation>::template TypeTraits<Element>::ResultType; | 271 | 8 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 8 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 8 | if constexpr (is_decimal(Element)) { | 275 | 8 | return ColVecResultType::create(0, column->get_scale()); | 276 | 8 | } else { | 277 | 8 | return ColVecResultType::create(); | 278 | 8 | } | 279 | 8 | }; | 280 | | | 281 | 8 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 8 | res_ptr, type, data, offsets, create_column); | 283 | 8 | } | 284 | 8 | } | 285 | 8 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Line | Count | Source | 247 | 4 | const ColumnArray::Offsets64& offsets) { | 248 | | if constexpr (is_string_type(Element)) { | 249 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 250 | | operation == AggregateOperation::AVERAGE) { | 251 | | return false; | 252 | | } | 253 | | | 254 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 255 | | return ColumnString::create(); | 256 | | }; | 257 | | | 258 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 259 | | offsets, create_column); | 260 | 4 | } else { | 261 | | if constexpr ((operation == AggregateOperation::SUM || | 262 | | operation == AggregateOperation::PRODUCT || | 263 | | operation == AggregateOperation::AVERAGE) && | 264 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 265 | | is_decimalv3(Element))) { | 266 | | return false; | 267 | 4 | } else { | 268 | 4 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 269 | 4 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 270 | 4 | operation>::template TypeTraits<Element>::ResultType; | 271 | 4 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 272 | | | 273 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 274 | 4 | if constexpr (is_decimal(Element)) { | 275 | 4 | return ColVecResultType::create(0, column->get_scale()); | 276 | 4 | } else { | 277 | 4 | return ColVecResultType::create(); | 278 | 4 | } | 279 | 4 | }; | 280 | | | 281 | 4 | return execute_type_impl<ColVecType, decltype(create_column)>( | 282 | 4 | res_ptr, type, data, offsets, create_column); | 283 | 4 | } | 284 | 4 | } | 285 | 4 | } |
Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE25EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE26EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE42EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE10EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE |
286 | | }; |
287 | | |
288 | | struct NameArrayMin { |
289 | | static constexpr auto name = "array_min"; |
290 | | }; |
291 | | |
292 | | template <> |
293 | | struct ArrayAggregateFunctionCreator<AggregateOperation::MIN, |
294 | | AggregateFunctionTraits<AggregateOperation::MIN>> { |
295 | | static auto create(const DataTypePtr& data_type_ptr, const AggregateFunctionAttr& attr) |
296 | 72 | -> AggregateFunctionPtr { |
297 | 72 | return create_aggregate_function_single_value<AggregateFunctionMinData>( |
298 | 72 | NameArrayMin::name, {make_nullable(data_type_ptr)}, make_nullable(data_type_ptr), |
299 | 72 | true, attr); |
300 | 72 | } |
301 | | }; |
302 | | |
303 | | struct NameArrayMax { |
304 | | static constexpr auto name = "array_max"; |
305 | | }; |
306 | | |
307 | | template <> |
308 | | struct ArrayAggregateFunctionCreator<AggregateOperation::MAX, |
309 | | AggregateFunctionTraits<AggregateOperation::MAX>> { |
310 | | static auto create(const DataTypePtr& data_type_ptr, const AggregateFunctionAttr& attr) |
311 | 72 | -> AggregateFunctionPtr { |
312 | 72 | return create_aggregate_function_single_value<AggregateFunctionMaxData>( |
313 | 72 | NameArrayMax::name, {make_nullable(data_type_ptr)}, make_nullable(data_type_ptr), |
314 | 72 | true, attr); |
315 | 72 | } |
316 | | }; |
317 | | |
318 | | struct NameArraySum { |
319 | | static constexpr auto name = "array_sum"; |
320 | | }; |
321 | | |
322 | | struct NameArrayAverage { |
323 | | static constexpr auto name = "array_avg"; |
324 | | }; |
325 | | struct NameArrayProduct { |
326 | | static constexpr auto name = "array_product"; |
327 | | }; |
328 | | |
329 | | using FunctionArrayMin = |
330 | | FunctionArrayMapped<ArrayAggregateImpl<AggregateOperation::MIN>, NameArrayMin>; |
331 | | using FunctionArrayMax = |
332 | | FunctionArrayMapped<ArrayAggregateImpl<AggregateOperation::MAX>, NameArrayMax>; |
333 | | using FunctionArraySum = |
334 | | FunctionArrayMapped<ArrayAggregateImpl<AggregateOperation::SUM>, NameArraySum>; |
335 | | using FunctionArrayAverage = |
336 | | FunctionArrayMapped<ArrayAggregateImpl<AggregateOperation::AVERAGE>, NameArrayAverage>; |
337 | | using FunctionArrayProduct = |
338 | | FunctionArrayMapped<ArrayAggregateImpl<AggregateOperation::PRODUCT>, NameArrayProduct>; |
339 | | |
340 | | using FunctionArrayJoin = FunctionArrayMapped<ArrayJoinImpl, NameArrayJoin>; |
341 | | |
342 | | template <AggregateOperation operation> |
343 | | struct AggregateFunctionTraitsWithResultType; |
344 | | |
345 | | template <> |
346 | | struct AggregateFunctionTraitsWithResultType<AggregateOperation::SUM> { |
347 | | template <PrimitiveType InputType, PrimitiveType ResultType> |
348 | | struct TypeTraits { |
349 | | using AggregateDataType = AggregateFunctionSumData<ResultType>; |
350 | | using Function = AggregateFunctionSum<InputType, ResultType, AggregateDataType>; |
351 | | }; |
352 | | }; |
353 | | template <> |
354 | | struct AggregateFunctionTraitsWithResultType<AggregateOperation::AVERAGE> { |
355 | | template <PrimitiveType InputType, PrimitiveType ResultType> |
356 | | struct TypeTraits { |
357 | | using AggregateDataType = AggregateFunctionAvgData<ResultType>; |
358 | | using Function = AggregateFunctionAvg<InputType, ResultType, AggregateDataType>; |
359 | | }; |
360 | | }; |
361 | | template <> |
362 | | struct AggregateFunctionTraitsWithResultType<AggregateOperation::PRODUCT> { |
363 | | template <PrimitiveType InputType, PrimitiveType ResultType> |
364 | | struct TypeTraits { |
365 | | using AggregateDataType = AggregateFunctionProductData<ResultType>; |
366 | | using Function = AggregateFunctionProduct<InputType, ResultType, AggregateDataType>; |
367 | | }; |
368 | | }; |
369 | | template <typename Derived> |
370 | | struct ArrayAggregateFunctionCreatorWithResultType { |
371 | | template <PrimitiveType InputType, PrimitiveType ResultType> |
372 | | using Function = typename Derived::template TypeTraits<InputType, ResultType>::Function; |
373 | | |
374 | | static auto create(const DataTypePtr& data_type_ptr, const DataTypePtr& result_type_ptr, |
375 | 0 | const AggregateFunctionAttr& attr) -> AggregateFunctionPtr { |
376 | 0 | return creator_with_type_list< |
377 | 0 | TYPE_DECIMAL32, TYPE_DECIMAL64, TYPE_DECIMAL128I, |
378 | 0 | TYPE_DECIMAL256>::creator_with_result_type<Function>("", |
379 | 0 | DataTypes {make_nullable( |
380 | 0 | data_type_ptr)}, |
381 | 0 | result_type_ptr, true, attr); |
382 | 0 | } Unexecuted instantiation: _ZN5doris43ArrayAggregateFunctionCreatorWithResultTypeINS_37AggregateFunctionTraitsWithResultTypeILNS_18AggregateOperationE2EEEE6createERKSt10shared_ptrIKNS_9IDataTypeEESA_RKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris43ArrayAggregateFunctionCreatorWithResultTypeINS_37AggregateFunctionTraitsWithResultTypeILNS_18AggregateOperationE3EEEE6createERKSt10shared_ptrIKNS_9IDataTypeEESA_RKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris43ArrayAggregateFunctionCreatorWithResultTypeINS_37AggregateFunctionTraitsWithResultTypeILNS_18AggregateOperationE4EEEE6createERKSt10shared_ptrIKNS_9IDataTypeEESA_RKNS_21AggregateFunctionAttrE |
383 | | }; |
384 | | template <AggregateOperation operation, PrimitiveType ResultType> |
385 | | struct ArrayAggregateImplDecimalV3; |
386 | | template <AggregateOperation operation, PrimitiveType ResultType> |
387 | | requires(operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || |
388 | | operation == AggregateOperation::AVERAGE) |
389 | | struct ArrayAggregateImplDecimalV3<operation, ResultType> { |
390 | | using column_type = ColumnArray; |
391 | | using data_type = DataTypeArray; |
392 | | |
393 | 0 | static bool _is_variadic() { return false; }Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EE12_is_variadicEv Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EE12_is_variadicEv Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EE12_is_variadicEv Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EE12_is_variadicEv Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EE12_is_variadicEv Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EE12_is_variadicEv |
394 | | |
395 | 0 | static size_t _get_number_of_arguments() { return 1; }Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EE24_get_number_of_argumentsEv Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EE24_get_number_of_argumentsEv Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EE24_get_number_of_argumentsEv Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EE24_get_number_of_argumentsEv Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EE24_get_number_of_argumentsEv Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EE24_get_number_of_argumentsEv |
396 | | |
397 | 0 | static bool skip_return_type_check() { return true; }Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EE22skip_return_type_checkEv Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EE22skip_return_type_checkEv Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EE22skip_return_type_checkEv Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EE22skip_return_type_checkEv Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EE22skip_return_type_checkEv Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EE22skip_return_type_checkEv |
398 | | |
399 | 0 | static DataTypePtr get_return_type(const DataTypes& arguments) { |
400 | 0 | throw doris::Exception( |
401 | 0 | ErrorCode::NOT_IMPLEMENTED_ERROR, |
402 | 0 | "get_return_type is not implemented for ArrayAggregateImplDecimalV3"); |
403 | 0 | __builtin_unreachable(); |
404 | 0 | } Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EE15get_return_typeERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EE15get_return_typeERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EE15get_return_typeERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EE15get_return_typeERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EE15get_return_typeERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EE15get_return_typeERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS8_EE |
405 | | |
406 | | static Status execute(Block& block, const ColumnNumbers& arguments, uint32_t result, |
407 | | const DataTypePtr& result_type, const DataTypeArray* data_type_array, |
408 | 0 | const ColumnArray& array) { |
409 | 0 | ColumnPtr res; |
410 | 0 | DataTypePtr type = data_type_array->get_nested_type(); |
411 | 0 | const IColumn* data = array.get_data_ptr().get(); |
412 | |
|
413 | 0 | const auto& offsets = array.get_offsets(); |
414 | |
|
415 | 0 | if (execute_type<TYPE_DECIMAL32>(res, result_type, type, data, offsets) || |
416 | 0 | execute_type<TYPE_DECIMAL64>(res, result_type, type, data, offsets) || |
417 | 0 | execute_type<TYPE_DECIMAL128I>(res, result_type, type, data, offsets) || |
418 | 0 | execute_type<TYPE_DECIMAL256>(res, result_type, type, data, offsets)) { |
419 | 0 | block.replace_by_position(result, std::move(res)); |
420 | 0 | return Status::OK(); |
421 | 0 | } else { |
422 | 0 | return Status::RuntimeError("Unexpected column for aggregation: {}", data->get_name()); |
423 | 0 | } |
424 | 0 | } Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EE7executeERNS_5BlockERKSt6vectorIjSaIjEEjRKSt10shared_ptrIKNS_9IDataTypeEEPKNS_13DataTypeArrayERKNS_11ColumnArrayE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EE7executeERNS_5BlockERKSt6vectorIjSaIjEEjRKSt10shared_ptrIKNS_9IDataTypeEEPKNS_13DataTypeArrayERKNS_11ColumnArrayE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EE7executeERNS_5BlockERKSt6vectorIjSaIjEEjRKSt10shared_ptrIKNS_9IDataTypeEEPKNS_13DataTypeArrayERKNS_11ColumnArrayE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EE7executeERNS_5BlockERKSt6vectorIjSaIjEEjRKSt10shared_ptrIKNS_9IDataTypeEEPKNS_13DataTypeArrayERKNS_11ColumnArrayE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EE7executeERNS_5BlockERKSt6vectorIjSaIjEEjRKSt10shared_ptrIKNS_9IDataTypeEEPKNS_13DataTypeArrayERKNS_11ColumnArrayE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EE7executeERNS_5BlockERKSt6vectorIjSaIjEEjRKSt10shared_ptrIKNS_9IDataTypeEEPKNS_13DataTypeArrayERKNS_11ColumnArrayE |
425 | | |
426 | | template <typename ColumnType, typename CreateColumnFunc> |
427 | | static bool execute_type_impl(ColumnPtr& res_ptr, const DataTypePtr& result_type, |
428 | | const DataTypePtr& type, const IColumn* data, |
429 | | const ColumnArray::Offsets64& offsets, |
430 | 0 | CreateColumnFunc create_column_func) { |
431 | 0 | using Function = ArrayAggregateFunctionCreatorWithResultType< |
432 | 0 | AggregateFunctionTraitsWithResultType<operation>>; |
433 | |
|
434 | 0 | const ColumnType* column = |
435 | 0 | is_column_nullable(*data) |
436 | 0 | ? check_and_get_column<ColumnType>( |
437 | 0 | static_cast<const ColumnNullable*>(data)->get_nested_column()) |
438 | 0 | : check_and_get_column<ColumnType>(&*data); |
439 | 0 | if (!column) { |
440 | 0 | return false; |
441 | 0 | } |
442 | | |
443 | 0 | ColumnPtr res_column = create_column_func(column); |
444 | 0 | res_column = make_nullable(res_column); |
445 | 0 | assert_cast<ColumnNullable&>(res_column->assert_mutable_ref()).reserve(offsets.size()); |
446 | |
|
447 | 0 | auto function = Function::create(type, result_type, |
448 | 0 | {.is_window_function = false, .column_names = {}}); |
449 | 0 | auto guard = AggregateFunctionGuard(function.get()); |
450 | 0 | Arena arena; |
451 | 0 | auto nullable_column = make_nullable(data->get_ptr()); |
452 | 0 | const IColumn* columns[] = {nullable_column.get()}; |
453 | 0 | function->check_input_columns_type(columns); |
454 | 0 | function->check_result_column_type(*res_column); |
455 | 0 | for (int64_t i = 0; i < offsets.size(); ++i) { |
456 | 0 | auto start = offsets[i - 1]; // -1 is ok. |
457 | 0 | auto end = offsets[i]; |
458 | 0 | bool is_empty = (start == end); |
459 | 0 | if (is_empty) { |
460 | 0 | res_column->assert_mutable()->insert_default(); |
461 | 0 | continue; |
462 | 0 | } |
463 | 0 | function->reset(guard.data()); |
464 | 0 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, |
465 | 0 | is_column_nullable(*data)); |
466 | 0 | function->insert_result_into(guard.data(), res_column->assert_mutable_ref()); |
467 | 0 | } |
468 | 0 | res_ptr = std::move(res_column); |
469 | 0 | return true; |
470 | 0 | } Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EE17execute_type_implINS_13ColumnDecimalILS2_28EEEZNS3_12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEESJ_PKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EE17execute_type_implINS_13ColumnDecimalILS2_29EEEZNS3_12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEESJ_PKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EE17execute_type_implINS_13ColumnDecimalILS2_30EEEZNS3_12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEESJ_PKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EE17execute_type_implINS_13ColumnDecimalILS2_35EEEZNS3_12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEESJ_PKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EE17execute_type_implINS_13ColumnDecimalILS2_28EEEZNS3_12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEESJ_PKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EE17execute_type_implINS_13ColumnDecimalILS2_29EEEZNS3_12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEESJ_PKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EE17execute_type_implINS_13ColumnDecimalILS2_30EEEZNS3_12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEESJ_PKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EE17execute_type_implINS_13ColumnDecimalILS2_35EEEZNS3_12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEESJ_PKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EE17execute_type_implINS_13ColumnDecimalILS2_28EEEZNS3_12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEESJ_PKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EE17execute_type_implINS_13ColumnDecimalILS2_29EEEZNS3_12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEESJ_PKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EE17execute_type_implINS_13ColumnDecimalILS2_30EEEZNS3_12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEESJ_PKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EE17execute_type_implINS_13ColumnDecimalILS2_35EEEZNS3_12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEESJ_PKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EE17execute_type_implINS_13ColumnDecimalILS2_28EEEZNS3_12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEESJ_PKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EE17execute_type_implINS_13ColumnDecimalILS2_29EEEZNS3_12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEESJ_PKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EE17execute_type_implINS_13ColumnDecimalILS2_30EEEZNS3_12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEESJ_PKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EE17execute_type_implINS_13ColumnDecimalILS2_35EEEZNS3_12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEESJ_PKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EE17execute_type_implINS_13ColumnDecimalILS2_28EEEZNS3_12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEESJ_PKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EE17execute_type_implINS_13ColumnDecimalILS2_29EEEZNS3_12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEESJ_PKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EE17execute_type_implINS_13ColumnDecimalILS2_30EEEZNS3_12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEESJ_PKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EE17execute_type_implINS_13ColumnDecimalILS2_35EEEZNS3_12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEESJ_PKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EE17execute_type_implINS_13ColumnDecimalILS2_28EEEZNS3_12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEESJ_PKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EE17execute_type_implINS_13ColumnDecimalILS2_29EEEZNS3_12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEESJ_PKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EE17execute_type_implINS_13ColumnDecimalILS2_30EEEZNS3_12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEESJ_PKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SJ_SL_SS_T0_ Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EE17execute_type_implINS_13ColumnDecimalILS2_35EEEZNS3_12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEESJ_PKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SJ_SL_SS_T0_ |
471 | | |
472 | | template <PrimitiveType Element> |
473 | | static bool execute_type(ColumnPtr& res_ptr, const DataTypePtr& result_type, |
474 | | const DataTypePtr& type, const IColumn* data, |
475 | 0 | const ColumnArray::Offsets64& offsets) { |
476 | 0 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; |
477 | 0 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; |
478 | |
|
479 | 0 | auto create_column = [](const ColVecType* column) -> ColumnPtr { |
480 | 0 | return ColVecResultType::create(0, column->get_scale()); |
481 | 0 | }; Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EE12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_28EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EE12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_29EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EE12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_30EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EE12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_35EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EE12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_28EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EE12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_29EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EE12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_30EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EE12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_35EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EE12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_28EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EE12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_29EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EE12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_30EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EE12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_35EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EE12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_28EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EE12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_29EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EE12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_30EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EE12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_35EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EE12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_28EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EE12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_29EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EE12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_30EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EE12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_35EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EE12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_28EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EE12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_29EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EE12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_30EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EE12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_35EEEE_clEST_ |
482 | |
|
483 | 0 | return execute_type_impl<ColVecType, decltype(create_column)>(res_ptr, result_type, type, |
484 | 0 | data, offsets, create_column); |
485 | 0 | } Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EE12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EE12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EE12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EE12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EE12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EE12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EE12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EE12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EE12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EE12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EE12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EE12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EE12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EE12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EE12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EE12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EE12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EE12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EE12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EE12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EE12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EE12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EE12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EE12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb1EEELm16ELm15EEE |
486 | | }; |
487 | | |
488 | | template <typename Impl, typename Name> |
489 | | class FunctionArrayAggDecimalV3 : public IFunction { |
490 | | public: |
491 | | static constexpr auto name = Name::name; |
492 | | explicit FunctionArrayAggDecimalV3(DataTypePtr result_type) |
493 | 0 | : _result_type(std::move(result_type)) {}Unexecuted instantiation: _ZN5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EEENS_12NameArraySumEEC2ESt10shared_ptrIKNS_9IDataTypeEE Unexecuted instantiation: _ZN5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EEENS_12NameArraySumEEC2ESt10shared_ptrIKNS_9IDataTypeEE Unexecuted instantiation: _ZN5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EEENS_16NameArrayAverageEEC2ESt10shared_ptrIKNS_9IDataTypeEE Unexecuted instantiation: _ZN5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EEENS_16NameArrayAverageEEC2ESt10shared_ptrIKNS_9IDataTypeEE Unexecuted instantiation: _ZN5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EEENS_16NameArrayProductEEC2ESt10shared_ptrIKNS_9IDataTypeEE Unexecuted instantiation: _ZN5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EEENS_16NameArrayProductEEC2ESt10shared_ptrIKNS_9IDataTypeEE |
494 | | |
495 | 0 | String get_name() const override { return name; }Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EEENS_12NameArraySumEE8get_nameB5cxx11Ev Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EEENS_12NameArraySumEE8get_nameB5cxx11Ev Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EEENS_16NameArrayAverageEE8get_nameB5cxx11Ev Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EEENS_16NameArrayAverageEE8get_nameB5cxx11Ev Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EEENS_16NameArrayProductEE8get_nameB5cxx11Ev Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EEENS_16NameArrayProductEE8get_nameB5cxx11Ev |
496 | | Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments, |
497 | 0 | uint32_t result, size_t input_rows_count) const override { |
498 | 0 | const auto& typed_column = block.get_by_position(arguments[0]); |
499 | 0 | auto ptr = typed_column.column->convert_to_full_column_if_const(); |
500 | 0 | const typename Impl::column_type* column_array; |
501 | 0 | if (is_column_nullable(*ptr)) { |
502 | 0 | column_array = assert_cast<const typename Impl::column_type*>( |
503 | 0 | assert_cast<const ColumnNullable*>(ptr.get())->get_nested_column_ptr().get()); |
504 | 0 | } else { |
505 | 0 | column_array = assert_cast<const typename Impl::column_type*>(ptr.get()); |
506 | 0 | } |
507 | 0 | const auto* data_type_array = |
508 | 0 | assert_cast<const DataTypeArray*>(remove_nullable(typed_column.type).get()); |
509 | 0 | return Impl::execute(block, arguments, result, _result_type, data_type_array, |
510 | 0 | *column_array); |
511 | 0 | } Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EEENS_12NameArraySumEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EEENS_12NameArraySumEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EEENS_16NameArrayAverageEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EEENS_16NameArrayAverageEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EEENS_16NameArrayProductEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EEENS_16NameArrayProductEE12execute_implEPNS_15FunctionContextERNS_5BlockERKSt6vectorIjSaIjEEjm |
512 | | |
513 | 0 | bool is_variadic() const override { return Impl::_is_variadic(); }Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EEENS_12NameArraySumEE11is_variadicEv Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EEENS_12NameArraySumEE11is_variadicEv Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EEENS_16NameArrayAverageEE11is_variadicEv Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EEENS_16NameArrayAverageEE11is_variadicEv Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EEENS_16NameArrayProductEE11is_variadicEv Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EEENS_16NameArrayProductEE11is_variadicEv |
514 | | |
515 | 0 | size_t get_number_of_arguments() const override { return Impl::_get_number_of_arguments(); }Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EEENS_12NameArraySumEE23get_number_of_argumentsEv Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EEENS_12NameArraySumEE23get_number_of_argumentsEv Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EEENS_16NameArrayAverageEE23get_number_of_argumentsEv Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EEENS_16NameArrayAverageEE23get_number_of_argumentsEv Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EEENS_16NameArrayProductEE23get_number_of_argumentsEv Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EEENS_16NameArrayProductEE23get_number_of_argumentsEv |
516 | | |
517 | 0 | bool skip_return_type_check() const override { return Impl::skip_return_type_check(); }Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EEENS_12NameArraySumEE22skip_return_type_checkEv Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EEENS_12NameArraySumEE22skip_return_type_checkEv Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EEENS_16NameArrayAverageEE22skip_return_type_checkEv Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EEENS_16NameArrayAverageEE22skip_return_type_checkEv Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EEENS_16NameArrayProductEE22skip_return_type_checkEv Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EEENS_16NameArrayProductEE22skip_return_type_checkEv |
518 | | |
519 | 0 | DataTypePtr get_return_type_impl(const DataTypes& arguments) const override { |
520 | 0 | return Impl::get_return_type(arguments); |
521 | 0 | } Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EEENS_12NameArraySumEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EEENS_12NameArraySumEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EEENS_16NameArrayAverageEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EEENS_16NameArrayAverageEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EEENS_16NameArrayProductEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE Unexecuted instantiation: _ZNK5doris25FunctionArrayAggDecimalV3INS_27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EEENS_16NameArrayProductEE20get_return_type_implERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISB_EE |
522 | | |
523 | | private: |
524 | | DataTypePtr _result_type; |
525 | | }; |
526 | | template <PrimitiveType ResultType> |
527 | | struct ArraySumDecimalV3Attributes { |
528 | | static_assert(is_decimalv3(ResultType)); |
529 | | using AggregateDataType = AggregateFunctionSumData<ResultType>; |
530 | | using Function = FunctionArrayAggDecimalV3< |
531 | | ArrayAggregateImplDecimalV3<AggregateOperation::SUM, ResultType>, NameArraySum>; |
532 | | }; |
533 | | template <PrimitiveType ResultType> |
534 | | using ArraySumDecimalV3 = typename ArraySumDecimalV3Attributes<ResultType>::Function; |
535 | | |
536 | | template <PrimitiveType ResultType> |
537 | | struct ArrayAvgDecimalV3Attributes { |
538 | | static_assert(is_decimalv3(ResultType)); |
539 | | using AggregateDataType = AggregateFunctionAvgData<ResultType>; |
540 | | using Function = FunctionArrayAggDecimalV3< |
541 | | ArrayAggregateImplDecimalV3<AggregateOperation::AVERAGE, ResultType>, NameArrayAverage>; |
542 | | }; |
543 | | template <PrimitiveType ResultType> |
544 | | using ArrayAvgDecimalV3 = typename ArrayAvgDecimalV3Attributes<ResultType>::Function; |
545 | | |
546 | | template <PrimitiveType ResultType> |
547 | | struct ArrayProductDecimalV3Attributes { |
548 | | static_assert(is_decimalv3(ResultType)); |
549 | | using AggregateDataType = AggregateFunctionProductData<ResultType>; |
550 | | using Function = FunctionArrayAggDecimalV3< |
551 | | ArrayAggregateImplDecimalV3<AggregateOperation::PRODUCT, ResultType>, NameArrayProduct>; |
552 | | }; |
553 | | template <PrimitiveType ResultType> |
554 | | using ArrayProductDecimalV3 = typename ArrayProductDecimalV3Attributes<ResultType>::Function; |
555 | 2 | void register_array_reduce_agg_functions(SimpleFunctionFactory& factory) { |
556 | 2 | { |
557 | 28 | ArrayAggFunctionCreator creator = [&](const DataTypePtr& result_type) { |
558 | 28 | if (is_decimalv3(result_type->get_primitive_type())) { |
559 | 0 | return DefaultFunctionBuilder::create_array_agg_function_decimalv3< |
560 | 0 | ArraySumDecimalV3>(result_type); |
561 | 28 | } else { |
562 | 28 | FunctionBuilderPtr func = |
563 | 28 | std::make_shared<DefaultFunctionBuilder>(FunctionArraySum::create()); |
564 | 28 | return func; |
565 | 28 | } |
566 | 28 | }; |
567 | 2 | factory.register_array_agg_function(NameArraySum::name, creator); |
568 | 2 | } |
569 | 2 | { |
570 | 28 | ArrayAggFunctionCreator creator = [&](const DataTypePtr& result_type) { |
571 | 28 | if (is_decimalv3(result_type->get_primitive_type())) { |
572 | 0 | return DefaultFunctionBuilder::create_array_agg_function_decimalv3< |
573 | 0 | ArrayAvgDecimalV3>(result_type); |
574 | 28 | } else { |
575 | 28 | FunctionBuilderPtr func = |
576 | 28 | std::make_shared<DefaultFunctionBuilder>(FunctionArrayAverage::create()); |
577 | 28 | return func; |
578 | 28 | } |
579 | 28 | }; |
580 | 2 | factory.register_array_agg_function(NameArrayAverage::name, creator); |
581 | 2 | } |
582 | 2 | { |
583 | 20 | ArrayAggFunctionCreator creator = [&](const DataTypePtr& result_type) { |
584 | 20 | if (is_decimalv3(result_type->get_primitive_type())) { |
585 | 0 | return DefaultFunctionBuilder::create_array_agg_function_decimalv3< |
586 | 0 | ArrayProductDecimalV3>(result_type); |
587 | 20 | } else { |
588 | 20 | FunctionBuilderPtr func = |
589 | 20 | std::make_shared<DefaultFunctionBuilder>(FunctionArrayProduct::create()); |
590 | 20 | return func; |
591 | 20 | } |
592 | 20 | }; |
593 | 2 | factory.register_array_agg_function(NameArrayProduct::name, creator); |
594 | 2 | } |
595 | 2 | } |
596 | | |
597 | 2 | void register_function_array_aggregation(SimpleFunctionFactory& factory) { |
598 | 2 | factory.register_function<FunctionArrayMin>(); |
599 | 2 | factory.register_function<FunctionArrayMax>(); |
600 | 2 | factory.register_function<FunctionArrayJoin>(); |
601 | 2 | register_array_reduce_agg_functions(factory); |
602 | 2 | } |
603 | | |
604 | | } // namespace doris |