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 | 76 | -> 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 | 76 | } else { |
126 | 76 | return creator_with_type_list< |
127 | 76 | TYPE_TINYINT, TYPE_SMALLINT, TYPE_INT, TYPE_BIGINT, TYPE_LARGEINT, TYPE_FLOAT, |
128 | 76 | TYPE_DOUBLE>::create<Function>(DataTypes {make_nullable(data_type_ptr)}, true, |
129 | 76 | attr); |
130 | 76 | } |
131 | 76 | } _ZN5doris29ArrayAggregateFunctionCreatorILNS_18AggregateOperationE2ENS_23AggregateFunctionTraitsILS1_2EEEE6createERKSt10shared_ptrIKNS_9IDataTypeEERKNS_21AggregateFunctionAttrE Line | Count | Source | 118 | 28 | -> 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 | 28 | } else { | 126 | 28 | return creator_with_type_list< | 127 | 28 | TYPE_TINYINT, TYPE_SMALLINT, TYPE_INT, TYPE_BIGINT, TYPE_LARGEINT, TYPE_FLOAT, | 128 | 28 | TYPE_DOUBLE>::create<Function>(DataTypes {make_nullable(data_type_ptr)}, true, | 129 | 28 | attr); | 130 | 28 | } | 131 | 28 | } |
_ZN5doris29ArrayAggregateFunctionCreatorILNS_18AggregateOperationE3ENS_23AggregateFunctionTraitsILS1_3EEEE6createERKSt10shared_ptrIKNS_9IDataTypeEERKNS_21AggregateFunctionAttrE Line | Count | Source | 118 | 28 | -> 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 | 28 | } else { | 126 | 28 | return creator_with_type_list< | 127 | 28 | TYPE_TINYINT, TYPE_SMALLINT, TYPE_INT, TYPE_BIGINT, TYPE_LARGEINT, TYPE_FLOAT, | 128 | 28 | TYPE_DOUBLE>::create<Function>(DataTypes {make_nullable(data_type_ptr)}, true, | 129 | 28 | attr); | 130 | 28 | } | 131 | 28 | } |
_ZN5doris29ArrayAggregateFunctionCreatorILNS_18AggregateOperationE4ENS_23AggregateFunctionTraitsILS1_4EEEE6createERKSt10shared_ptrIKNS_9IDataTypeEERKNS_21AggregateFunctionAttrE Line | Count | Source | 118 | 20 | -> 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 | 20 | } else { | 126 | 20 | return creator_with_type_list< | 127 | 20 | TYPE_TINYINT, TYPE_SMALLINT, TYPE_INT, TYPE_BIGINT, TYPE_LARGEINT, TYPE_FLOAT, | 128 | 20 | TYPE_DOUBLE>::create<Function>(DataTypes {make_nullable(data_type_ptr)}, true, | 129 | 20 | attr); | 130 | 20 | } | 131 | 20 | } |
|
132 | | }; |
133 | | |
134 | | template <AggregateOperation operation> |
135 | | struct ArrayAggregateImpl { |
136 | | using column_type = ColumnArray; |
137 | | using data_type = DataTypeArray; |
138 | | |
139 | 76 | static bool _is_variadic() { return false; }_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12_is_variadicEv Line | Count | Source | 139 | 14 | static bool _is_variadic() { return false; } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12_is_variadicEv Line | Count | Source | 139 | 14 | static bool _is_variadic() { return false; } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12_is_variadicEv Line | Count | Source | 139 | 10 | static bool _is_variadic() { return false; } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12_is_variadicEv Line | Count | Source | 139 | 19 | static bool _is_variadic() { return false; } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12_is_variadicEv Line | Count | Source | 139 | 19 | static bool _is_variadic() { return false; } |
|
140 | | |
141 | 74 | static size_t _get_number_of_arguments() { return 1; }_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE24_get_number_of_argumentsEv Line | Count | Source | 141 | 14 | static size_t _get_number_of_arguments() { return 1; } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE24_get_number_of_argumentsEv Line | Count | Source | 141 | 14 | static size_t _get_number_of_arguments() { return 1; } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE24_get_number_of_argumentsEv Line | Count | Source | 141 | 10 | static size_t _get_number_of_arguments() { return 1; } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE24_get_number_of_argumentsEv Line | Count | Source | 141 | 18 | static size_t _get_number_of_arguments() { return 1; } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE24_get_number_of_argumentsEv Line | Count | Source | 141 | 18 | static size_t _get_number_of_arguments() { return 1; } |
|
142 | | |
143 | | static bool skip_return_type_check() { return false; } |
144 | | |
145 | 74 | static DataTypePtr get_return_type(const DataTypes& arguments) { |
146 | 74 | using Function = |
147 | 74 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; |
148 | 74 | const DataTypeArray* data_type_array = |
149 | 74 | static_cast<const DataTypeArray*>(remove_nullable(arguments[0]).get()); |
150 | 74 | auto function = Function::create(data_type_array->get_nested_type(), |
151 | 74 | {.is_window_function = false, .column_names = {}}); |
152 | 74 | if (function) { |
153 | 74 | return function->get_return_type(); |
154 | 74 | } 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 | 74 | } _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE15get_return_typeERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS7_EE Line | Count | Source | 145 | 14 | static DataTypePtr get_return_type(const DataTypes& arguments) { | 146 | 14 | using Function = | 147 | 14 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 148 | 14 | const DataTypeArray* data_type_array = | 149 | 14 | static_cast<const DataTypeArray*>(remove_nullable(arguments[0]).get()); | 150 | 14 | auto function = Function::create(data_type_array->get_nested_type(), | 151 | 14 | {.is_window_function = false, .column_names = {}}); | 152 | 14 | if (function) { | 153 | 14 | return function->get_return_type(); | 154 | 14 | } 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 | 14 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE15get_return_typeERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS7_EE Line | Count | Source | 145 | 14 | static DataTypePtr get_return_type(const DataTypes& arguments) { | 146 | 14 | using Function = | 147 | 14 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 148 | 14 | const DataTypeArray* data_type_array = | 149 | 14 | static_cast<const DataTypeArray*>(remove_nullable(arguments[0]).get()); | 150 | 14 | auto function = Function::create(data_type_array->get_nested_type(), | 151 | 14 | {.is_window_function = false, .column_names = {}}); | 152 | 14 | if (function) { | 153 | 14 | return function->get_return_type(); | 154 | 14 | } 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 | 14 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE15get_return_typeERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS7_EE Line | Count | Source | 145 | 10 | static DataTypePtr get_return_type(const DataTypes& arguments) { | 146 | 10 | using Function = | 147 | 10 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 148 | 10 | const DataTypeArray* data_type_array = | 149 | 10 | static_cast<const DataTypeArray*>(remove_nullable(arguments[0]).get()); | 150 | 10 | auto function = Function::create(data_type_array->get_nested_type(), | 151 | 10 | {.is_window_function = false, .column_names = {}}); | 152 | 10 | if (function) { | 153 | 10 | return function->get_return_type(); | 154 | 10 | } 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 | 10 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE15get_return_typeERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS7_EE Line | Count | Source | 145 | 18 | static DataTypePtr get_return_type(const DataTypes& arguments) { | 146 | 18 | using Function = | 147 | 18 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 148 | 18 | const DataTypeArray* data_type_array = | 149 | 18 | static_cast<const DataTypeArray*>(remove_nullable(arguments[0]).get()); | 150 | 18 | auto function = Function::create(data_type_array->get_nested_type(), | 151 | 18 | {.is_window_function = false, .column_names = {}}); | 152 | 18 | if (function) { | 153 | 18 | return function->get_return_type(); | 154 | 18 | } 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 | 18 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE15get_return_typeERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS7_EE Line | Count | Source | 145 | 18 | static DataTypePtr get_return_type(const DataTypes& arguments) { | 146 | 18 | using Function = | 147 | 18 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 148 | 18 | const DataTypeArray* data_type_array = | 149 | 18 | static_cast<const DataTypeArray*>(remove_nullable(arguments[0]).get()); | 150 | 18 | auto function = Function::create(data_type_array->get_nested_type(), | 151 | 18 | {.is_window_function = false, .column_names = {}}); | 152 | 18 | if (function) { | 153 | 18 | return function->get_return_type(); | 154 | 18 | } 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 | 18 | } |
|
160 | | |
161 | | static Status execute(Block& block, const ColumnNumbers& arguments, uint32_t result, |
162 | 74 | const DataTypeArray* data_type_array, const ColumnArray& array) { |
163 | 74 | ColumnPtr res; |
164 | 74 | DataTypePtr type = data_type_array->get_nested_type(); |
165 | 74 | const IColumn* data = array.get_data_ptr().get(); |
166 | | |
167 | 74 | 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 | 74 | if (execute_type<TYPE_BOOLEAN>(res, type, data, offsets) || |
179 | 74 | execute_type<TYPE_TINYINT>(res, type, data, offsets) || |
180 | 74 | execute_type<TYPE_SMALLINT>(res, type, data, offsets) || |
181 | 74 | execute_type<TYPE_INT>(res, type, data, offsets) || |
182 | 74 | execute_type<TYPE_BIGINT>(res, type, data, offsets) || |
183 | 74 | execute_type<TYPE_LARGEINT>(res, type, data, offsets) || |
184 | 74 | execute_type<TYPE_FLOAT>(res, type, data, offsets) || |
185 | 74 | execute_type<TYPE_DOUBLE>(res, type, data, offsets) || |
186 | 74 | execute_type<TYPE_DECIMAL32>(res, type, data, offsets) || |
187 | 74 | execute_type<TYPE_DECIMAL64>(res, type, data, offsets) || |
188 | 74 | execute_type<TYPE_DECIMAL128I>(res, type, data, offsets) || |
189 | 74 | execute_type<TYPE_DECIMAL256>(res, type, data, offsets) || |
190 | 74 | execute_type<TYPE_DATEV2>(res, type, data, offsets) || |
191 | 74 | execute_type<TYPE_DATETIMEV2>(res, type, data, offsets) || |
192 | 74 | execute_type<TYPE_TIMESTAMPTZ>(res, type, data, offsets) || |
193 | 74 | execute_type<TYPE_VARCHAR>(res, type, data, offsets)) { |
194 | 66 | block.replace_by_position(result, std::move(res)); |
195 | 66 | return Status::OK(); |
196 | 66 | } else { |
197 | 8 | return Status::RuntimeError("Unexpected column for aggregation: {}", data->get_name()); |
198 | 8 | } |
199 | 74 | } _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE7executeERNS_5BlockERKSt6vectorIjSaIjEEjPKNS_13DataTypeArrayERKNS_11ColumnArrayE Line | Count | Source | 162 | 14 | const DataTypeArray* data_type_array, const ColumnArray& array) { | 163 | 14 | ColumnPtr res; | 164 | 14 | DataTypePtr type = data_type_array->get_nested_type(); | 165 | 14 | const IColumn* data = array.get_data_ptr().get(); | 166 | | | 167 | 14 | 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 | 14 | if (execute_type<TYPE_BOOLEAN>(res, type, data, offsets) || | 179 | 14 | execute_type<TYPE_TINYINT>(res, type, data, offsets) || | 180 | 14 | execute_type<TYPE_SMALLINT>(res, type, data, offsets) || | 181 | 14 | execute_type<TYPE_INT>(res, type, data, offsets) || | 182 | 14 | execute_type<TYPE_BIGINT>(res, type, data, offsets) || | 183 | 14 | execute_type<TYPE_LARGEINT>(res, type, data, offsets) || | 184 | 14 | execute_type<TYPE_FLOAT>(res, type, data, offsets) || | 185 | 14 | execute_type<TYPE_DOUBLE>(res, type, data, offsets) || | 186 | 14 | execute_type<TYPE_DECIMAL32>(res, type, data, offsets) || | 187 | 14 | execute_type<TYPE_DECIMAL64>(res, type, data, offsets) || | 188 | 14 | execute_type<TYPE_DECIMAL128I>(res, type, data, offsets) || | 189 | 14 | execute_type<TYPE_DECIMAL256>(res, type, data, offsets) || | 190 | 14 | execute_type<TYPE_DATEV2>(res, type, data, offsets) || | 191 | 14 | execute_type<TYPE_DATETIMEV2>(res, type, data, offsets) || | 192 | 14 | execute_type<TYPE_TIMESTAMPTZ>(res, type, data, offsets) || | 193 | 14 | execute_type<TYPE_VARCHAR>(res, type, data, offsets)) { | 194 | 14 | block.replace_by_position(result, std::move(res)); | 195 | 14 | return Status::OK(); | 196 | 14 | } else { | 197 | 0 | return Status::RuntimeError("Unexpected column for aggregation: {}", data->get_name()); | 198 | 0 | } | 199 | 14 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE7executeERNS_5BlockERKSt6vectorIjSaIjEEjPKNS_13DataTypeArrayERKNS_11ColumnArrayE Line | Count | Source | 162 | 14 | const DataTypeArray* data_type_array, const ColumnArray& array) { | 163 | 14 | ColumnPtr res; | 164 | 14 | DataTypePtr type = data_type_array->get_nested_type(); | 165 | 14 | const IColumn* data = array.get_data_ptr().get(); | 166 | | | 167 | 14 | 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 | 14 | if (execute_type<TYPE_BOOLEAN>(res, type, data, offsets) || | 179 | 14 | execute_type<TYPE_TINYINT>(res, type, data, offsets) || | 180 | 14 | execute_type<TYPE_SMALLINT>(res, type, data, offsets) || | 181 | 14 | execute_type<TYPE_INT>(res, type, data, offsets) || | 182 | 14 | execute_type<TYPE_BIGINT>(res, type, data, offsets) || | 183 | 14 | execute_type<TYPE_LARGEINT>(res, type, data, offsets) || | 184 | 14 | execute_type<TYPE_FLOAT>(res, type, data, offsets) || | 185 | 14 | execute_type<TYPE_DOUBLE>(res, type, data, offsets) || | 186 | 14 | execute_type<TYPE_DECIMAL32>(res, type, data, offsets) || | 187 | 14 | execute_type<TYPE_DECIMAL64>(res, type, data, offsets) || | 188 | 14 | execute_type<TYPE_DECIMAL128I>(res, type, data, offsets) || | 189 | 14 | execute_type<TYPE_DECIMAL256>(res, type, data, offsets) || | 190 | 14 | execute_type<TYPE_DATEV2>(res, type, data, offsets) || | 191 | 14 | execute_type<TYPE_DATETIMEV2>(res, type, data, offsets) || | 192 | 14 | execute_type<TYPE_TIMESTAMPTZ>(res, type, data, offsets) || | 193 | 14 | execute_type<TYPE_VARCHAR>(res, type, data, offsets)) { | 194 | 14 | block.replace_by_position(result, std::move(res)); | 195 | 14 | return Status::OK(); | 196 | 14 | } else { | 197 | 0 | return Status::RuntimeError("Unexpected column for aggregation: {}", data->get_name()); | 198 | 0 | } | 199 | 14 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE7executeERNS_5BlockERKSt6vectorIjSaIjEEjPKNS_13DataTypeArrayERKNS_11ColumnArrayE Line | Count | Source | 162 | 10 | const DataTypeArray* data_type_array, const ColumnArray& array) { | 163 | 10 | ColumnPtr res; | 164 | 10 | DataTypePtr type = data_type_array->get_nested_type(); | 165 | 10 | const IColumn* data = array.get_data_ptr().get(); | 166 | | | 167 | 10 | 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 | 10 | if (execute_type<TYPE_BOOLEAN>(res, type, data, offsets) || | 179 | 10 | execute_type<TYPE_TINYINT>(res, type, data, offsets) || | 180 | 10 | execute_type<TYPE_SMALLINT>(res, type, data, offsets) || | 181 | 10 | execute_type<TYPE_INT>(res, type, data, offsets) || | 182 | 10 | execute_type<TYPE_BIGINT>(res, type, data, offsets) || | 183 | 10 | execute_type<TYPE_LARGEINT>(res, type, data, offsets) || | 184 | 10 | execute_type<TYPE_FLOAT>(res, type, data, offsets) || | 185 | 10 | execute_type<TYPE_DOUBLE>(res, type, data, offsets) || | 186 | 10 | execute_type<TYPE_DECIMAL32>(res, type, data, offsets) || | 187 | 10 | execute_type<TYPE_DECIMAL64>(res, type, data, offsets) || | 188 | 10 | execute_type<TYPE_DECIMAL128I>(res, type, data, offsets) || | 189 | 10 | execute_type<TYPE_DECIMAL256>(res, type, data, offsets) || | 190 | 10 | execute_type<TYPE_DATEV2>(res, type, data, offsets) || | 191 | 10 | execute_type<TYPE_DATETIMEV2>(res, type, data, offsets) || | 192 | 10 | execute_type<TYPE_TIMESTAMPTZ>(res, type, data, offsets) || | 193 | 10 | execute_type<TYPE_VARCHAR>(res, type, data, offsets)) { | 194 | 10 | block.replace_by_position(result, std::move(res)); | 195 | 10 | return Status::OK(); | 196 | 10 | } else { | 197 | 0 | return Status::RuntimeError("Unexpected column for aggregation: {}", data->get_name()); | 198 | 0 | } | 199 | 10 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE7executeERNS_5BlockERKSt6vectorIjSaIjEEjPKNS_13DataTypeArrayERKNS_11ColumnArrayE Line | Count | Source | 162 | 18 | const DataTypeArray* data_type_array, const ColumnArray& array) { | 163 | 18 | ColumnPtr res; | 164 | 18 | DataTypePtr type = data_type_array->get_nested_type(); | 165 | 18 | const IColumn* data = array.get_data_ptr().get(); | 166 | | | 167 | 18 | const auto& offsets = array.get_offsets(); | 168 | | if constexpr (operation == AggregateOperation::MAX || | 169 | 18 | operation == AggregateOperation::MIN) { | 170 | | // min/max can only be applied on ip type | 171 | 18 | if (execute_type<TYPE_IPV4>(res, type, data, offsets) || | 172 | 18 | execute_type<TYPE_IPV6>(res, type, data, offsets)) { | 173 | 4 | block.replace_by_position(result, std::move(res)); | 174 | 4 | return Status::OK(); | 175 | 4 | } | 176 | 18 | } | 177 | | | 178 | 18 | if (execute_type<TYPE_BOOLEAN>(res, type, data, offsets) || | 179 | 18 | execute_type<TYPE_TINYINT>(res, type, data, offsets) || | 180 | 18 | execute_type<TYPE_SMALLINT>(res, type, data, offsets) || | 181 | 18 | execute_type<TYPE_INT>(res, type, data, offsets) || | 182 | 18 | execute_type<TYPE_BIGINT>(res, type, data, offsets) || | 183 | 18 | execute_type<TYPE_LARGEINT>(res, type, data, offsets) || | 184 | 18 | execute_type<TYPE_FLOAT>(res, type, data, offsets) || | 185 | 18 | execute_type<TYPE_DOUBLE>(res, type, data, offsets) || | 186 | 18 | execute_type<TYPE_DECIMAL32>(res, type, data, offsets) || | 187 | 18 | execute_type<TYPE_DECIMAL64>(res, type, data, offsets) || | 188 | 18 | execute_type<TYPE_DECIMAL128I>(res, type, data, offsets) || | 189 | 18 | execute_type<TYPE_DECIMAL256>(res, type, data, offsets) || | 190 | 18 | execute_type<TYPE_DATEV2>(res, type, data, offsets) || | 191 | 18 | execute_type<TYPE_DATETIMEV2>(res, type, data, offsets) || | 192 | 18 | execute_type<TYPE_TIMESTAMPTZ>(res, type, data, offsets) || | 193 | 18 | execute_type<TYPE_VARCHAR>(res, type, data, offsets)) { | 194 | 14 | block.replace_by_position(result, std::move(res)); | 195 | 14 | return Status::OK(); | 196 | 14 | } else { | 197 | 4 | return Status::RuntimeError("Unexpected column for aggregation: {}", data->get_name()); | 198 | 4 | } | 199 | 18 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE7executeERNS_5BlockERKSt6vectorIjSaIjEEjPKNS_13DataTypeArrayERKNS_11ColumnArrayE Line | Count | Source | 162 | 18 | const DataTypeArray* data_type_array, const ColumnArray& array) { | 163 | 18 | ColumnPtr res; | 164 | 18 | DataTypePtr type = data_type_array->get_nested_type(); | 165 | 18 | const IColumn* data = array.get_data_ptr().get(); | 166 | | | 167 | 18 | const auto& offsets = array.get_offsets(); | 168 | | if constexpr (operation == AggregateOperation::MAX || | 169 | 18 | operation == AggregateOperation::MIN) { | 170 | | // min/max can only be applied on ip type | 171 | 18 | if (execute_type<TYPE_IPV4>(res, type, data, offsets) || | 172 | 18 | execute_type<TYPE_IPV6>(res, type, data, offsets)) { | 173 | 4 | block.replace_by_position(result, std::move(res)); | 174 | 4 | return Status::OK(); | 175 | 4 | } | 176 | 18 | } | 177 | | | 178 | 18 | if (execute_type<TYPE_BOOLEAN>(res, type, data, offsets) || | 179 | 18 | execute_type<TYPE_TINYINT>(res, type, data, offsets) || | 180 | 18 | execute_type<TYPE_SMALLINT>(res, type, data, offsets) || | 181 | 18 | execute_type<TYPE_INT>(res, type, data, offsets) || | 182 | 18 | execute_type<TYPE_BIGINT>(res, type, data, offsets) || | 183 | 18 | execute_type<TYPE_LARGEINT>(res, type, data, offsets) || | 184 | 18 | execute_type<TYPE_FLOAT>(res, type, data, offsets) || | 185 | 18 | execute_type<TYPE_DOUBLE>(res, type, data, offsets) || | 186 | 18 | execute_type<TYPE_DECIMAL32>(res, type, data, offsets) || | 187 | 18 | execute_type<TYPE_DECIMAL64>(res, type, data, offsets) || | 188 | 18 | execute_type<TYPE_DECIMAL128I>(res, type, data, offsets) || | 189 | 18 | execute_type<TYPE_DECIMAL256>(res, type, data, offsets) || | 190 | 18 | execute_type<TYPE_DATEV2>(res, type, data, offsets) || | 191 | 18 | execute_type<TYPE_DATETIMEV2>(res, type, data, offsets) || | 192 | 18 | execute_type<TYPE_TIMESTAMPTZ>(res, type, data, offsets) || | 193 | 18 | execute_type<TYPE_VARCHAR>(res, type, data, offsets)) { | 194 | 14 | block.replace_by_position(result, std::move(res)); | 195 | 14 | return Status::OK(); | 196 | 14 | } else { | 197 | 4 | return Status::RuntimeError("Unexpected column for aggregation: {}", data->get_name()); | 198 | 4 | } | 199 | 18 | } |
|
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 | 408 | CreateColumnFunc create_column_func) { |
205 | 408 | using Function = |
206 | 408 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; |
207 | | |
208 | 408 | const ColumnType* column = |
209 | 408 | data->is_nullable() |
210 | 408 | ? check_and_get_column<ColumnType>( |
211 | 408 | static_cast<const ColumnNullable*>(data)->get_nested_column()) |
212 | 408 | : check_and_get_column<ColumnType>(&*data); |
213 | 408 | if (!column) { |
214 | 334 | return false; |
215 | 334 | } |
216 | | |
217 | 74 | ColumnPtr res_column = create_column_func(column); |
218 | 74 | res_column = make_nullable(res_column); |
219 | 74 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); |
220 | | |
221 | 74 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); |
222 | 74 | auto guard = AggregateFunctionGuard(function.get()); |
223 | 74 | Arena arena; |
224 | 74 | auto nullable_column = make_nullable(data->get_ptr()); |
225 | 74 | const IColumn* columns[] = {nullable_column.get()}; |
226 | 259 | for (int64_t i = 0; i < offsets.size(); ++i) { |
227 | 185 | auto start = offsets[i - 1]; // -1 is ok. |
228 | 185 | auto end = offsets[i]; |
229 | 185 | bool is_empty = (start == end); |
230 | 185 | if (is_empty) { |
231 | 74 | res_column->assume_mutable()->insert_default(); |
232 | 74 | continue; |
233 | 74 | } |
234 | 111 | function->reset(guard.data()); |
235 | 111 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, |
236 | 111 | data->is_nullable()); |
237 | 111 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); |
238 | 111 | } |
239 | 74 | res_ptr = std::move(res_column); |
240 | 74 | return true; |
241 | 408 | } _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE2EEEZNS2_12execute_typeILS5_2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 14 | CreateColumnFunc create_column_func) { | 205 | 14 | using Function = | 206 | 14 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 14 | const ColumnType* column = | 209 | 14 | data->is_nullable() | 210 | 14 | ? check_and_get_column<ColumnType>( | 211 | 14 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 14 | : check_and_get_column<ColumnType>(&*data); | 213 | 14 | if (!column) { | 214 | 14 | return false; | 215 | 14 | } | 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->assume_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 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 0 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 0 | auto end = offsets[i]; | 229 | 0 | bool is_empty = (start == end); | 230 | 0 | if (is_empty) { | 231 | 0 | res_column->assume_mutable()->insert_default(); | 232 | 0 | continue; | 233 | 0 | } | 234 | 0 | function->reset(guard.data()); | 235 | 0 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 0 | data->is_nullable()); | 237 | 0 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 0 | } | 239 | 0 | res_ptr = std::move(res_column); | 240 | 0 | return true; | 241 | 14 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE3EEEZNS2_12execute_typeILS5_3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 14 | CreateColumnFunc create_column_func) { | 205 | 14 | using Function = | 206 | 14 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 14 | const ColumnType* column = | 209 | 14 | data->is_nullable() | 210 | 14 | ? check_and_get_column<ColumnType>( | 211 | 14 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 14 | : check_and_get_column<ColumnType>(&*data); | 213 | 14 | if (!column) { | 214 | 12 | return false; | 215 | 12 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 14 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE4EEEZNS2_12execute_typeILS5_4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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 | data->is_nullable() | 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 | 10 | return false; | 215 | 10 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 12 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE5EEEZNS2_12execute_typeILS5_5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 10 | CreateColumnFunc create_column_func) { | 205 | 10 | using Function = | 206 | 10 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 10 | const ColumnType* column = | 209 | 10 | data->is_nullable() | 210 | 10 | ? check_and_get_column<ColumnType>( | 211 | 10 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 10 | : check_and_get_column<ColumnType>(&*data); | 213 | 10 | if (!column) { | 214 | 8 | return false; | 215 | 8 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 10 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE6EEEZNS2_12execute_typeILS5_6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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 | data->is_nullable() | 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 | 6 | return false; | 215 | 6 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 8 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE7EEEZNS2_12execute_typeILS5_7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 6 | CreateColumnFunc create_column_func) { | 205 | 6 | using Function = | 206 | 6 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 6 | const ColumnType* column = | 209 | 6 | data->is_nullable() | 210 | 6 | ? check_and_get_column<ColumnType>( | 211 | 6 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 6 | : check_and_get_column<ColumnType>(&*data); | 213 | 6 | if (!column) { | 214 | 4 | return false; | 215 | 4 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 6 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE8EEEZNS2_12execute_typeILS5_8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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 | data->is_nullable() | 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 | 2 | return false; | 215 | 2 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 4 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE9EEEZNS2_12execute_typeILS5_9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 2 | CreateColumnFunc create_column_func) { | 205 | 2 | using Function = | 206 | 2 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 2 | const ColumnType* column = | 209 | 2 | data->is_nullable() | 210 | 2 | ? check_and_get_column<ColumnType>( | 211 | 2 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 2 | : check_and_get_column<ColumnType>(&*data); | 213 | 2 | if (!column) { | 214 | 0 | return false; | 215 | 0 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 2 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE2EEEZNS2_12execute_typeILS5_2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 14 | CreateColumnFunc create_column_func) { | 205 | 14 | using Function = | 206 | 14 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 14 | const ColumnType* column = | 209 | 14 | data->is_nullable() | 210 | 14 | ? check_and_get_column<ColumnType>( | 211 | 14 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 14 | : check_and_get_column<ColumnType>(&*data); | 213 | 14 | if (!column) { | 214 | 14 | return false; | 215 | 14 | } | 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->assume_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 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 0 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 0 | auto end = offsets[i]; | 229 | 0 | bool is_empty = (start == end); | 230 | 0 | if (is_empty) { | 231 | 0 | res_column->assume_mutable()->insert_default(); | 232 | 0 | continue; | 233 | 0 | } | 234 | 0 | function->reset(guard.data()); | 235 | 0 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 0 | data->is_nullable()); | 237 | 0 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 0 | } | 239 | 0 | res_ptr = std::move(res_column); | 240 | 0 | return true; | 241 | 14 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE3EEEZNS2_12execute_typeILS5_3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 14 | CreateColumnFunc create_column_func) { | 205 | 14 | using Function = | 206 | 14 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 14 | const ColumnType* column = | 209 | 14 | data->is_nullable() | 210 | 14 | ? check_and_get_column<ColumnType>( | 211 | 14 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 14 | : check_and_get_column<ColumnType>(&*data); | 213 | 14 | if (!column) { | 214 | 12 | return false; | 215 | 12 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 14 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE4EEEZNS2_12execute_typeILS5_4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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 | data->is_nullable() | 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 | 10 | return false; | 215 | 10 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 12 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE5EEEZNS2_12execute_typeILS5_5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 10 | CreateColumnFunc create_column_func) { | 205 | 10 | using Function = | 206 | 10 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 10 | const ColumnType* column = | 209 | 10 | data->is_nullable() | 210 | 10 | ? check_and_get_column<ColumnType>( | 211 | 10 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 10 | : check_and_get_column<ColumnType>(&*data); | 213 | 10 | if (!column) { | 214 | 8 | return false; | 215 | 8 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 10 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE6EEEZNS2_12execute_typeILS5_6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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 | data->is_nullable() | 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 | 6 | return false; | 215 | 6 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 8 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE7EEEZNS2_12execute_typeILS5_7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 6 | CreateColumnFunc create_column_func) { | 205 | 6 | using Function = | 206 | 6 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 6 | const ColumnType* column = | 209 | 6 | data->is_nullable() | 210 | 6 | ? check_and_get_column<ColumnType>( | 211 | 6 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 6 | : check_and_get_column<ColumnType>(&*data); | 213 | 6 | if (!column) { | 214 | 4 | return false; | 215 | 4 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 6 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE8EEEZNS2_12execute_typeILS5_8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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 | data->is_nullable() | 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 | 2 | return false; | 215 | 2 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 4 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE9EEEZNS2_12execute_typeILS5_9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 2 | CreateColumnFunc create_column_func) { | 205 | 2 | using Function = | 206 | 2 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 2 | const ColumnType* column = | 209 | 2 | data->is_nullable() | 210 | 2 | ? check_and_get_column<ColumnType>( | 211 | 2 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 2 | : check_and_get_column<ColumnType>(&*data); | 213 | 2 | if (!column) { | 214 | 0 | return false; | 215 | 0 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 2 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE2EEEZNS2_12execute_typeILS5_2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 10 | CreateColumnFunc create_column_func) { | 205 | 10 | using Function = | 206 | 10 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 10 | const ColumnType* column = | 209 | 10 | data->is_nullable() | 210 | 10 | ? check_and_get_column<ColumnType>( | 211 | 10 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 10 | : check_and_get_column<ColumnType>(&*data); | 213 | 10 | if (!column) { | 214 | 10 | return false; | 215 | 10 | } | 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->assume_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 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 0 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 0 | auto end = offsets[i]; | 229 | 0 | bool is_empty = (start == end); | 230 | 0 | if (is_empty) { | 231 | 0 | res_column->assume_mutable()->insert_default(); | 232 | 0 | continue; | 233 | 0 | } | 234 | 0 | function->reset(guard.data()); | 235 | 0 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 0 | data->is_nullable()); | 237 | 0 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 0 | } | 239 | 0 | res_ptr = std::move(res_column); | 240 | 0 | return true; | 241 | 10 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE3EEEZNS2_12execute_typeILS5_3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 10 | CreateColumnFunc create_column_func) { | 205 | 10 | using Function = | 206 | 10 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 10 | const ColumnType* column = | 209 | 10 | data->is_nullable() | 210 | 10 | ? check_and_get_column<ColumnType>( | 211 | 10 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 10 | : check_and_get_column<ColumnType>(&*data); | 213 | 10 | if (!column) { | 214 | 10 | return false; | 215 | 10 | } | 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->assume_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 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 0 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 0 | auto end = offsets[i]; | 229 | 0 | bool is_empty = (start == end); | 230 | 0 | if (is_empty) { | 231 | 0 | res_column->assume_mutable()->insert_default(); | 232 | 0 | continue; | 233 | 0 | } | 234 | 0 | function->reset(guard.data()); | 235 | 0 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 0 | data->is_nullable()); | 237 | 0 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 0 | } | 239 | 0 | res_ptr = std::move(res_column); | 240 | 0 | return true; | 241 | 10 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE4EEEZNS2_12execute_typeILS5_4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 10 | CreateColumnFunc create_column_func) { | 205 | 10 | using Function = | 206 | 10 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 10 | const ColumnType* column = | 209 | 10 | data->is_nullable() | 210 | 10 | ? check_and_get_column<ColumnType>( | 211 | 10 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 10 | : check_and_get_column<ColumnType>(&*data); | 213 | 10 | if (!column) { | 214 | 10 | return false; | 215 | 10 | } | 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->assume_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 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 0 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 0 | auto end = offsets[i]; | 229 | 0 | bool is_empty = (start == end); | 230 | 0 | if (is_empty) { | 231 | 0 | res_column->assume_mutable()->insert_default(); | 232 | 0 | continue; | 233 | 0 | } | 234 | 0 | function->reset(guard.data()); | 235 | 0 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 0 | data->is_nullable()); | 237 | 0 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 0 | } | 239 | 0 | res_ptr = std::move(res_column); | 240 | 0 | return true; | 241 | 10 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE5EEEZNS2_12execute_typeILS5_5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 10 | CreateColumnFunc create_column_func) { | 205 | 10 | using Function = | 206 | 10 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 10 | const ColumnType* column = | 209 | 10 | data->is_nullable() | 210 | 10 | ? check_and_get_column<ColumnType>( | 211 | 10 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 10 | : check_and_get_column<ColumnType>(&*data); | 213 | 10 | if (!column) { | 214 | 8 | return false; | 215 | 8 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 10 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE6EEEZNS2_12execute_typeILS5_6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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 | data->is_nullable() | 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 | 6 | return false; | 215 | 6 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 8 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE7EEEZNS2_12execute_typeILS5_7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 6 | CreateColumnFunc create_column_func) { | 205 | 6 | using Function = | 206 | 6 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 6 | const ColumnType* column = | 209 | 6 | data->is_nullable() | 210 | 6 | ? check_and_get_column<ColumnType>( | 211 | 6 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 6 | : check_and_get_column<ColumnType>(&*data); | 213 | 6 | if (!column) { | 214 | 4 | return false; | 215 | 4 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 6 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE8EEEZNS2_12execute_typeILS5_8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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 | data->is_nullable() | 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 | 2 | return false; | 215 | 2 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 4 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE9EEEZNS2_12execute_typeILS5_9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 2 | CreateColumnFunc create_column_func) { | 205 | 2 | using Function = | 206 | 2 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 2 | const ColumnType* column = | 209 | 2 | data->is_nullable() | 210 | 2 | ? check_and_get_column<ColumnType>( | 211 | 2 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 2 | : check_and_get_column<ColumnType>(&*data); | 213 | 2 | if (!column) { | 214 | 0 | return false; | 215 | 0 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 2 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE36EEEZNS2_12execute_typeILS5_36EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 18 | CreateColumnFunc create_column_func) { | 205 | 18 | using Function = | 206 | 18 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 18 | const ColumnType* column = | 209 | 18 | data->is_nullable() | 210 | 18 | ? check_and_get_column<ColumnType>( | 211 | 18 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 18 | : check_and_get_column<ColumnType>(&*data); | 213 | 18 | if (!column) { | 214 | 16 | return false; | 215 | 16 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 18 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE37EEEZNS2_12execute_typeILS5_37EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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 | data->is_nullable() | 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 | 14 | return false; | 215 | 14 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 16 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE2EEEZNS2_12execute_typeILS5_2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 14 | CreateColumnFunc create_column_func) { | 205 | 14 | using Function = | 206 | 14 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 14 | const ColumnType* column = | 209 | 14 | data->is_nullable() | 210 | 14 | ? check_and_get_column<ColumnType>( | 211 | 14 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 14 | : check_and_get_column<ColumnType>(&*data); | 213 | 14 | if (!column) { | 214 | 14 | return false; | 215 | 14 | } | 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->assume_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 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 0 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 0 | auto end = offsets[i]; | 229 | 0 | bool is_empty = (start == end); | 230 | 0 | if (is_empty) { | 231 | 0 | res_column->assume_mutable()->insert_default(); | 232 | 0 | continue; | 233 | 0 | } | 234 | 0 | function->reset(guard.data()); | 235 | 0 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 0 | data->is_nullable()); | 237 | 0 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 0 | } | 239 | 0 | res_ptr = std::move(res_column); | 240 | 0 | return true; | 241 | 14 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE3EEEZNS2_12execute_typeILS5_3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 14 | CreateColumnFunc create_column_func) { | 205 | 14 | using Function = | 206 | 14 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 14 | const ColumnType* column = | 209 | 14 | data->is_nullable() | 210 | 14 | ? check_and_get_column<ColumnType>( | 211 | 14 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 14 | : check_and_get_column<ColumnType>(&*data); | 213 | 14 | if (!column) { | 214 | 12 | return false; | 215 | 12 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 14 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE4EEEZNS2_12execute_typeILS5_4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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 | data->is_nullable() | 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 | 10 | return false; | 215 | 10 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 12 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE5EEEZNS2_12execute_typeILS5_5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 10 | CreateColumnFunc create_column_func) { | 205 | 10 | using Function = | 206 | 10 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 10 | const ColumnType* column = | 209 | 10 | data->is_nullable() | 210 | 10 | ? check_and_get_column<ColumnType>( | 211 | 10 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 10 | : check_and_get_column<ColumnType>(&*data); | 213 | 10 | if (!column) { | 214 | 8 | return false; | 215 | 8 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 10 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE6EEEZNS2_12execute_typeILS5_6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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 | data->is_nullable() | 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 | 6 | return false; | 215 | 6 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 8 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE7EEEZNS2_12execute_typeILS5_7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 6 | CreateColumnFunc create_column_func) { | 205 | 6 | using Function = | 206 | 6 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 6 | const ColumnType* column = | 209 | 6 | data->is_nullable() | 210 | 6 | ? check_and_get_column<ColumnType>( | 211 | 6 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 6 | : check_and_get_column<ColumnType>(&*data); | 213 | 6 | if (!column) { | 214 | 4 | return false; | 215 | 4 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 6 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE8EEEZNS2_12execute_typeILS5_8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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 | data->is_nullable() | 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 | 2 | return false; | 215 | 2 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 4 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE9EEEZNS2_12execute_typeILS5_9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 2 | CreateColumnFunc create_column_func) { | 205 | 2 | using Function = | 206 | 2 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 2 | const ColumnType* column = | 209 | 2 | data->is_nullable() | 210 | 2 | ? check_and_get_column<ColumnType>( | 211 | 2 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 2 | : check_and_get_column<ColumnType>(&*data); | 213 | 2 | if (!column) { | 214 | 0 | return false; | 215 | 0 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 2 | } |
Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE17execute_type_implINS_13ColumnDecimalILNS_13PrimitiveTypeE28EEEZNS2_12execute_typeILS5_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS5_E_EEbSD_SJ_SL_SS_T0_ _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE36EEEZNS2_12execute_typeILS5_36EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 18 | CreateColumnFunc create_column_func) { | 205 | 18 | using Function = | 206 | 18 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 18 | const ColumnType* column = | 209 | 18 | data->is_nullable() | 210 | 18 | ? check_and_get_column<ColumnType>( | 211 | 18 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 18 | : check_and_get_column<ColumnType>(&*data); | 213 | 18 | if (!column) { | 214 | 16 | return false; | 215 | 16 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 18 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE37EEEZNS2_12execute_typeILS5_37EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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 | data->is_nullable() | 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 | 14 | return false; | 215 | 14 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 16 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE2EEEZNS2_12execute_typeILS5_2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 14 | CreateColumnFunc create_column_func) { | 205 | 14 | using Function = | 206 | 14 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 14 | const ColumnType* column = | 209 | 14 | data->is_nullable() | 210 | 14 | ? check_and_get_column<ColumnType>( | 211 | 14 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 14 | : check_and_get_column<ColumnType>(&*data); | 213 | 14 | if (!column) { | 214 | 14 | return false; | 215 | 14 | } | 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->assume_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 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 0 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 0 | auto end = offsets[i]; | 229 | 0 | bool is_empty = (start == end); | 230 | 0 | if (is_empty) { | 231 | 0 | res_column->assume_mutable()->insert_default(); | 232 | 0 | continue; | 233 | 0 | } | 234 | 0 | function->reset(guard.data()); | 235 | 0 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 0 | data->is_nullable()); | 237 | 0 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 0 | } | 239 | 0 | res_ptr = std::move(res_column); | 240 | 0 | return true; | 241 | 14 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE3EEEZNS2_12execute_typeILS5_3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 14 | CreateColumnFunc create_column_func) { | 205 | 14 | using Function = | 206 | 14 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 14 | const ColumnType* column = | 209 | 14 | data->is_nullable() | 210 | 14 | ? check_and_get_column<ColumnType>( | 211 | 14 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 14 | : check_and_get_column<ColumnType>(&*data); | 213 | 14 | if (!column) { | 214 | 12 | return false; | 215 | 12 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 14 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE4EEEZNS2_12execute_typeILS5_4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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 | data->is_nullable() | 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 | 10 | return false; | 215 | 10 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 12 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE5EEEZNS2_12execute_typeILS5_5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 10 | CreateColumnFunc create_column_func) { | 205 | 10 | using Function = | 206 | 10 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 10 | const ColumnType* column = | 209 | 10 | data->is_nullable() | 210 | 10 | ? check_and_get_column<ColumnType>( | 211 | 10 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 10 | : check_and_get_column<ColumnType>(&*data); | 213 | 10 | if (!column) { | 214 | 8 | return false; | 215 | 8 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 10 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE6EEEZNS2_12execute_typeILS5_6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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 | data->is_nullable() | 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 | 6 | return false; | 215 | 6 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 8 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE7EEEZNS2_12execute_typeILS5_7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 6 | CreateColumnFunc create_column_func) { | 205 | 6 | using Function = | 206 | 6 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 6 | const ColumnType* column = | 209 | 6 | data->is_nullable() | 210 | 6 | ? check_and_get_column<ColumnType>( | 211 | 6 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 6 | : check_and_get_column<ColumnType>(&*data); | 213 | 6 | if (!column) { | 214 | 4 | return false; | 215 | 4 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 6 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE8EEEZNS2_12execute_typeILS5_8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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 | data->is_nullable() | 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 | 2 | return false; | 215 | 2 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 4 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_12ColumnVectorILNS_13PrimitiveTypeE9EEEZNS2_12execute_typeILS5_9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SL_SS_T0_ Line | Count | Source | 204 | 2 | CreateColumnFunc create_column_func) { | 205 | 2 | using Function = | 206 | 2 | ArrayAggregateFunctionCreator<operation, AggregateFunctionTraits<operation>>; | 207 | | | 208 | 2 | const ColumnType* column = | 209 | 2 | data->is_nullable() | 210 | 2 | ? check_and_get_column<ColumnType>( | 211 | 2 | static_cast<const ColumnNullable*>(data)->get_nested_column()) | 212 | 2 | : check_and_get_column<ColumnType>(&*data); | 213 | 2 | if (!column) { | 214 | 0 | return false; | 215 | 0 | } | 216 | | | 217 | 2 | ColumnPtr res_column = create_column_func(column); | 218 | 2 | res_column = make_nullable(res_column); | 219 | 2 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); | 220 | | | 221 | 2 | auto function = Function::create(type, {.is_window_function = false, .column_names = {}}); | 222 | 2 | auto guard = AggregateFunctionGuard(function.get()); | 223 | 2 | Arena arena; | 224 | 2 | auto nullable_column = make_nullable(data->get_ptr()); | 225 | 2 | const IColumn* columns[] = {nullable_column.get()}; | 226 | 7 | for (int64_t i = 0; i < offsets.size(); ++i) { | 227 | 5 | auto start = offsets[i - 1]; // -1 is ok. | 228 | 5 | auto end = offsets[i]; | 229 | 5 | bool is_empty = (start == end); | 230 | 5 | if (is_empty) { | 231 | 2 | res_column->assume_mutable()->insert_default(); | 232 | 2 | continue; | 233 | 2 | } | 234 | 3 | function->reset(guard.data()); | 235 | 3 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, | 236 | 3 | data->is_nullable()); | 237 | 3 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); | 238 | 3 | } | 239 | 2 | res_ptr = std::move(res_column); | 240 | 2 | return true; | 241 | 2 | } |
Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE17execute_type_implINS_13ColumnDecimalILNS_13PrimitiveTypeE28EEEZNS2_12execute_typeILS5_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS5_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS5_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS5_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS5_E_EEbSD_SJ_SL_SS_T0_ |
242 | | |
243 | | template <PrimitiveType Element> |
244 | | static bool execute_type(ColumnPtr& res_ptr, const DataTypePtr& type, const IColumn* data, |
245 | 408 | const ColumnArray::Offsets64& offsets) { |
246 | 408 | if constexpr (is_string_type(Element)) { |
247 | 0 | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || |
248 | 0 | operation == AggregateOperation::AVERAGE) { |
249 | 0 | return false; |
250 | 0 | } |
251 | | |
252 | 0 | auto create_column = [](const ColumnString*) -> ColumnPtr { |
253 | 0 | return ColumnString::create(); |
254 | 0 | }; Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE10EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_9ColumnStrIjEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE10EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_9ColumnStrIjEEE_clEST_ |
255 | |
|
256 | 0 | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, |
257 | 0 | offsets, create_column); |
258 | 408 | } else { |
259 | | if constexpr ((operation == AggregateOperation::SUM || |
260 | | operation == AggregateOperation::PRODUCT || |
261 | | operation == AggregateOperation::AVERAGE) && |
262 | | (is_date_type(Element) || is_timestamptz_type(Element) || |
263 | 0 | is_decimalv3(Element))) { |
264 | 0 | return false; |
265 | 408 | } else { |
266 | 408 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; |
267 | 408 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< |
268 | 408 | operation>::template TypeTraits<Element>::ResultType; |
269 | 408 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; |
270 | | |
271 | 408 | auto create_column = [](const ColVecType* column) -> ColumnPtr { |
272 | 74 | if constexpr (is_decimal(Element)) { |
273 | 0 | return ColVecResultType::create(0, column->get_scale()); |
274 | 74 | } else { |
275 | 74 | return ColVecResultType::create(); |
276 | 74 | } |
277 | 74 | }; Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_2EEEE_clEST_ _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_3EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_4EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_5EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_6EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_7EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_8EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_9EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_2EEEE_clEST_ _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_3EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_4EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_5EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_6EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_7EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_8EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_9EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_2EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_3EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_4EEEE_clEST_ _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_5EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_6EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_7EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_8EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_9EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE36EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_36EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE37EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_37EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_2EEEE_clEST_ _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_3EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_4EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_5EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_6EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_7EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_8EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_9EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS4_28EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS4_29EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS4_30EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS4_35EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE25EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_25EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE26EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_26EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE42EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_42EEEE_clEST_ _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE36EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_36EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE37EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_37EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_2EEEE_clEST_ _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_3EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_4EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_5EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_6EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_7EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_8EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
_ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_9EEEE_clEST_ Line | Count | Source | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | | if constexpr (is_decimal(Element)) { | 273 | | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; |
Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS4_28EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS4_29EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS4_30EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS4_35EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE25EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_25EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE26EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_26EEEE_clEST_ Unexecuted instantiation: _ZZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE42EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_12ColumnVectorILS4_42EEEE_clEST_ |
278 | | |
279 | 408 | return execute_type_impl<ColVecType, decltype(create_column)>( |
280 | 408 | res_ptr, type, data, offsets, create_column); |
281 | 408 | } |
282 | 408 | } |
283 | 408 | } _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 14 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 14 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 14 | } else { | 266 | 14 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 14 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 14 | operation>::template TypeTraits<Element>::ResultType; | 269 | 14 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 14 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 14 | if constexpr (is_decimal(Element)) { | 273 | 14 | return ColVecResultType::create(0, column->get_scale()); | 274 | 14 | } else { | 275 | 14 | return ColVecResultType::create(); | 276 | 14 | } | 277 | 14 | }; | 278 | | | 279 | 14 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 14 | res_ptr, type, data, offsets, create_column); | 281 | 14 | } | 282 | 14 | } | 283 | 14 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 14 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 14 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 14 | } else { | 266 | 14 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 14 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 14 | operation>::template TypeTraits<Element>::ResultType; | 269 | 14 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 14 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 14 | if constexpr (is_decimal(Element)) { | 273 | 14 | return ColVecResultType::create(0, column->get_scale()); | 274 | 14 | } else { | 275 | 14 | return ColVecResultType::create(); | 276 | 14 | } | 277 | 14 | }; | 278 | | | 279 | 14 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 14 | res_ptr, type, data, offsets, create_column); | 281 | 14 | } | 282 | 14 | } | 283 | 14 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 12 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 12 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 12 | } else { | 266 | 12 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 12 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 12 | operation>::template TypeTraits<Element>::ResultType; | 269 | 12 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 12 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 12 | if constexpr (is_decimal(Element)) { | 273 | 12 | return ColVecResultType::create(0, column->get_scale()); | 274 | 12 | } else { | 275 | 12 | return ColVecResultType::create(); | 276 | 12 | } | 277 | 12 | }; | 278 | | | 279 | 12 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 12 | res_ptr, type, data, offsets, create_column); | 281 | 12 | } | 282 | 12 | } | 283 | 12 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 10 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 10 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 10 | } else { | 266 | 10 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 10 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 10 | operation>::template TypeTraits<Element>::ResultType; | 269 | 10 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 10 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 10 | if constexpr (is_decimal(Element)) { | 273 | 10 | return ColVecResultType::create(0, column->get_scale()); | 274 | 10 | } else { | 275 | 10 | return ColVecResultType::create(); | 276 | 10 | } | 277 | 10 | }; | 278 | | | 279 | 10 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 10 | res_ptr, type, data, offsets, create_column); | 281 | 10 | } | 282 | 10 | } | 283 | 10 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 8 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 8 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 8 | } else { | 266 | 8 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 8 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 8 | operation>::template TypeTraits<Element>::ResultType; | 269 | 8 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 8 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 8 | if constexpr (is_decimal(Element)) { | 273 | 8 | return ColVecResultType::create(0, column->get_scale()); | 274 | 8 | } else { | 275 | 8 | return ColVecResultType::create(); | 276 | 8 | } | 277 | 8 | }; | 278 | | | 279 | 8 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 8 | res_ptr, type, data, offsets, create_column); | 281 | 8 | } | 282 | 8 | } | 283 | 8 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 6 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 6 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 6 | } else { | 266 | 6 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 6 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 6 | operation>::template TypeTraits<Element>::ResultType; | 269 | 6 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 6 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 6 | if constexpr (is_decimal(Element)) { | 273 | 6 | return ColVecResultType::create(0, column->get_scale()); | 274 | 6 | } else { | 275 | 6 | return ColVecResultType::create(); | 276 | 6 | } | 277 | 6 | }; | 278 | | | 279 | 6 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 6 | res_ptr, type, data, offsets, create_column); | 281 | 6 | } | 282 | 6 | } | 283 | 6 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 4 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 4 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 4 | } else { | 266 | 4 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 4 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 4 | operation>::template TypeTraits<Element>::ResultType; | 269 | 4 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 4 | if constexpr (is_decimal(Element)) { | 273 | 4 | return ColVecResultType::create(0, column->get_scale()); | 274 | 4 | } else { | 275 | 4 | return ColVecResultType::create(); | 276 | 4 | } | 277 | 4 | }; | 278 | | | 279 | 4 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 4 | res_ptr, type, data, offsets, create_column); | 281 | 4 | } | 282 | 4 | } | 283 | 4 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 2 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 2 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 2 | } else { | 266 | 2 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 2 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 2 | operation>::template TypeTraits<Element>::ResultType; | 269 | 2 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 2 | if constexpr (is_decimal(Element)) { | 273 | 2 | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; | 278 | | | 279 | 2 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 2 | res_ptr, type, data, offsets, create_column); | 281 | 2 | } | 282 | 2 | } | 283 | 2 | } |
Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE25EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE26EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE42EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE2EE12execute_typeILNS_13PrimitiveTypeE10EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 14 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 14 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 14 | } else { | 266 | 14 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 14 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 14 | operation>::template TypeTraits<Element>::ResultType; | 269 | 14 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 14 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 14 | if constexpr (is_decimal(Element)) { | 273 | 14 | return ColVecResultType::create(0, column->get_scale()); | 274 | 14 | } else { | 275 | 14 | return ColVecResultType::create(); | 276 | 14 | } | 277 | 14 | }; | 278 | | | 279 | 14 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 14 | res_ptr, type, data, offsets, create_column); | 281 | 14 | } | 282 | 14 | } | 283 | 14 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 14 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 14 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 14 | } else { | 266 | 14 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 14 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 14 | operation>::template TypeTraits<Element>::ResultType; | 269 | 14 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 14 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 14 | if constexpr (is_decimal(Element)) { | 273 | 14 | return ColVecResultType::create(0, column->get_scale()); | 274 | 14 | } else { | 275 | 14 | return ColVecResultType::create(); | 276 | 14 | } | 277 | 14 | }; | 278 | | | 279 | 14 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 14 | res_ptr, type, data, offsets, create_column); | 281 | 14 | } | 282 | 14 | } | 283 | 14 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 12 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 12 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 12 | } else { | 266 | 12 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 12 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 12 | operation>::template TypeTraits<Element>::ResultType; | 269 | 12 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 12 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 12 | if constexpr (is_decimal(Element)) { | 273 | 12 | return ColVecResultType::create(0, column->get_scale()); | 274 | 12 | } else { | 275 | 12 | return ColVecResultType::create(); | 276 | 12 | } | 277 | 12 | }; | 278 | | | 279 | 12 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 12 | res_ptr, type, data, offsets, create_column); | 281 | 12 | } | 282 | 12 | } | 283 | 12 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 10 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 10 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 10 | } else { | 266 | 10 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 10 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 10 | operation>::template TypeTraits<Element>::ResultType; | 269 | 10 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 10 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 10 | if constexpr (is_decimal(Element)) { | 273 | 10 | return ColVecResultType::create(0, column->get_scale()); | 274 | 10 | } else { | 275 | 10 | return ColVecResultType::create(); | 276 | 10 | } | 277 | 10 | }; | 278 | | | 279 | 10 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 10 | res_ptr, type, data, offsets, create_column); | 281 | 10 | } | 282 | 10 | } | 283 | 10 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 8 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 8 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 8 | } else { | 266 | 8 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 8 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 8 | operation>::template TypeTraits<Element>::ResultType; | 269 | 8 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 8 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 8 | if constexpr (is_decimal(Element)) { | 273 | 8 | return ColVecResultType::create(0, column->get_scale()); | 274 | 8 | } else { | 275 | 8 | return ColVecResultType::create(); | 276 | 8 | } | 277 | 8 | }; | 278 | | | 279 | 8 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 8 | res_ptr, type, data, offsets, create_column); | 281 | 8 | } | 282 | 8 | } | 283 | 8 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 6 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 6 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 6 | } else { | 266 | 6 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 6 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 6 | operation>::template TypeTraits<Element>::ResultType; | 269 | 6 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 6 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 6 | if constexpr (is_decimal(Element)) { | 273 | 6 | return ColVecResultType::create(0, column->get_scale()); | 274 | 6 | } else { | 275 | 6 | return ColVecResultType::create(); | 276 | 6 | } | 277 | 6 | }; | 278 | | | 279 | 6 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 6 | res_ptr, type, data, offsets, create_column); | 281 | 6 | } | 282 | 6 | } | 283 | 6 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 4 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 4 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 4 | } else { | 266 | 4 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 4 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 4 | operation>::template TypeTraits<Element>::ResultType; | 269 | 4 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 4 | if constexpr (is_decimal(Element)) { | 273 | 4 | return ColVecResultType::create(0, column->get_scale()); | 274 | 4 | } else { | 275 | 4 | return ColVecResultType::create(); | 276 | 4 | } | 277 | 4 | }; | 278 | | | 279 | 4 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 4 | res_ptr, type, data, offsets, create_column); | 281 | 4 | } | 282 | 4 | } | 283 | 4 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 2 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 2 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 2 | } else { | 266 | 2 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 2 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 2 | operation>::template TypeTraits<Element>::ResultType; | 269 | 2 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 2 | if constexpr (is_decimal(Element)) { | 273 | 2 | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; | 278 | | | 279 | 2 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 2 | res_ptr, type, data, offsets, create_column); | 281 | 2 | } | 282 | 2 | } | 283 | 2 | } |
Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE25EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE26EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE42EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE3EE12execute_typeILNS_13PrimitiveTypeE10EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 10 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 10 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 10 | } else { | 266 | 10 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 10 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 10 | operation>::template TypeTraits<Element>::ResultType; | 269 | 10 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 10 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 10 | if constexpr (is_decimal(Element)) { | 273 | 10 | return ColVecResultType::create(0, column->get_scale()); | 274 | 10 | } else { | 275 | 10 | return ColVecResultType::create(); | 276 | 10 | } | 277 | 10 | }; | 278 | | | 279 | 10 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 10 | res_ptr, type, data, offsets, create_column); | 281 | 10 | } | 282 | 10 | } | 283 | 10 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 10 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 10 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 10 | } else { | 266 | 10 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 10 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 10 | operation>::template TypeTraits<Element>::ResultType; | 269 | 10 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 10 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 10 | if constexpr (is_decimal(Element)) { | 273 | 10 | return ColVecResultType::create(0, column->get_scale()); | 274 | 10 | } else { | 275 | 10 | return ColVecResultType::create(); | 276 | 10 | } | 277 | 10 | }; | 278 | | | 279 | 10 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 10 | res_ptr, type, data, offsets, create_column); | 281 | 10 | } | 282 | 10 | } | 283 | 10 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 10 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 10 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 10 | } else { | 266 | 10 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 10 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 10 | operation>::template TypeTraits<Element>::ResultType; | 269 | 10 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 10 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 10 | if constexpr (is_decimal(Element)) { | 273 | 10 | return ColVecResultType::create(0, column->get_scale()); | 274 | 10 | } else { | 275 | 10 | return ColVecResultType::create(); | 276 | 10 | } | 277 | 10 | }; | 278 | | | 279 | 10 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 10 | res_ptr, type, data, offsets, create_column); | 281 | 10 | } | 282 | 10 | } | 283 | 10 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 10 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 10 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 10 | } else { | 266 | 10 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 10 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 10 | operation>::template TypeTraits<Element>::ResultType; | 269 | 10 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 10 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 10 | if constexpr (is_decimal(Element)) { | 273 | 10 | return ColVecResultType::create(0, column->get_scale()); | 274 | 10 | } else { | 275 | 10 | return ColVecResultType::create(); | 276 | 10 | } | 277 | 10 | }; | 278 | | | 279 | 10 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 10 | res_ptr, type, data, offsets, create_column); | 281 | 10 | } | 282 | 10 | } | 283 | 10 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 8 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 8 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 8 | } else { | 266 | 8 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 8 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 8 | operation>::template TypeTraits<Element>::ResultType; | 269 | 8 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 8 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 8 | if constexpr (is_decimal(Element)) { | 273 | 8 | return ColVecResultType::create(0, column->get_scale()); | 274 | 8 | } else { | 275 | 8 | return ColVecResultType::create(); | 276 | 8 | } | 277 | 8 | }; | 278 | | | 279 | 8 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 8 | res_ptr, type, data, offsets, create_column); | 281 | 8 | } | 282 | 8 | } | 283 | 8 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 6 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 6 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 6 | } else { | 266 | 6 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 6 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 6 | operation>::template TypeTraits<Element>::ResultType; | 269 | 6 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 6 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 6 | if constexpr (is_decimal(Element)) { | 273 | 6 | return ColVecResultType::create(0, column->get_scale()); | 274 | 6 | } else { | 275 | 6 | return ColVecResultType::create(); | 276 | 6 | } | 277 | 6 | }; | 278 | | | 279 | 6 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 6 | res_ptr, type, data, offsets, create_column); | 281 | 6 | } | 282 | 6 | } | 283 | 6 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 4 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 4 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 4 | } else { | 266 | 4 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 4 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 4 | operation>::template TypeTraits<Element>::ResultType; | 269 | 4 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 4 | if constexpr (is_decimal(Element)) { | 273 | 4 | return ColVecResultType::create(0, column->get_scale()); | 274 | 4 | } else { | 275 | 4 | return ColVecResultType::create(); | 276 | 4 | } | 277 | 4 | }; | 278 | | | 279 | 4 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 4 | res_ptr, type, data, offsets, create_column); | 281 | 4 | } | 282 | 4 | } | 283 | 4 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 2 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 2 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 2 | } else { | 266 | 2 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 2 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 2 | operation>::template TypeTraits<Element>::ResultType; | 269 | 2 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 2 | if constexpr (is_decimal(Element)) { | 273 | 2 | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; | 278 | | | 279 | 2 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 2 | res_ptr, type, data, offsets, create_column); | 281 | 2 | } | 282 | 2 | } | 283 | 2 | } |
Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE25EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE26EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE42EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE4EE12execute_typeILNS_13PrimitiveTypeE10EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE36EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 18 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 18 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 18 | } else { | 266 | 18 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 18 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 18 | operation>::template TypeTraits<Element>::ResultType; | 269 | 18 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 18 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 18 | if constexpr (is_decimal(Element)) { | 273 | 18 | return ColVecResultType::create(0, column->get_scale()); | 274 | 18 | } else { | 275 | 18 | return ColVecResultType::create(); | 276 | 18 | } | 277 | 18 | }; | 278 | | | 279 | 18 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 18 | res_ptr, type, data, offsets, create_column); | 281 | 18 | } | 282 | 18 | } | 283 | 18 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE37EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 16 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 16 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 16 | } else { | 266 | 16 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 16 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 16 | operation>::template TypeTraits<Element>::ResultType; | 269 | 16 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 16 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 16 | if constexpr (is_decimal(Element)) { | 273 | 16 | return ColVecResultType::create(0, column->get_scale()); | 274 | 16 | } else { | 275 | 16 | return ColVecResultType::create(); | 276 | 16 | } | 277 | 16 | }; | 278 | | | 279 | 16 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 16 | res_ptr, type, data, offsets, create_column); | 281 | 16 | } | 282 | 16 | } | 283 | 16 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 14 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 14 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 14 | } else { | 266 | 14 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 14 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 14 | operation>::template TypeTraits<Element>::ResultType; | 269 | 14 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 14 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 14 | if constexpr (is_decimal(Element)) { | 273 | 14 | return ColVecResultType::create(0, column->get_scale()); | 274 | 14 | } else { | 275 | 14 | return ColVecResultType::create(); | 276 | 14 | } | 277 | 14 | }; | 278 | | | 279 | 14 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 14 | res_ptr, type, data, offsets, create_column); | 281 | 14 | } | 282 | 14 | } | 283 | 14 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 14 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 14 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 14 | } else { | 266 | 14 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 14 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 14 | operation>::template TypeTraits<Element>::ResultType; | 269 | 14 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 14 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 14 | if constexpr (is_decimal(Element)) { | 273 | 14 | return ColVecResultType::create(0, column->get_scale()); | 274 | 14 | } else { | 275 | 14 | return ColVecResultType::create(); | 276 | 14 | } | 277 | 14 | }; | 278 | | | 279 | 14 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 14 | res_ptr, type, data, offsets, create_column); | 281 | 14 | } | 282 | 14 | } | 283 | 14 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 12 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 12 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 12 | } else { | 266 | 12 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 12 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 12 | operation>::template TypeTraits<Element>::ResultType; | 269 | 12 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 12 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 12 | if constexpr (is_decimal(Element)) { | 273 | 12 | return ColVecResultType::create(0, column->get_scale()); | 274 | 12 | } else { | 275 | 12 | return ColVecResultType::create(); | 276 | 12 | } | 277 | 12 | }; | 278 | | | 279 | 12 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 12 | res_ptr, type, data, offsets, create_column); | 281 | 12 | } | 282 | 12 | } | 283 | 12 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 10 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 10 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 10 | } else { | 266 | 10 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 10 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 10 | operation>::template TypeTraits<Element>::ResultType; | 269 | 10 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 10 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 10 | if constexpr (is_decimal(Element)) { | 273 | 10 | return ColVecResultType::create(0, column->get_scale()); | 274 | 10 | } else { | 275 | 10 | return ColVecResultType::create(); | 276 | 10 | } | 277 | 10 | }; | 278 | | | 279 | 10 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 10 | res_ptr, type, data, offsets, create_column); | 281 | 10 | } | 282 | 10 | } | 283 | 10 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 8 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 8 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 8 | } else { | 266 | 8 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 8 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 8 | operation>::template TypeTraits<Element>::ResultType; | 269 | 8 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 8 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 8 | if constexpr (is_decimal(Element)) { | 273 | 8 | return ColVecResultType::create(0, column->get_scale()); | 274 | 8 | } else { | 275 | 8 | return ColVecResultType::create(); | 276 | 8 | } | 277 | 8 | }; | 278 | | | 279 | 8 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 8 | res_ptr, type, data, offsets, create_column); | 281 | 8 | } | 282 | 8 | } | 283 | 8 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 6 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 6 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 6 | } else { | 266 | 6 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 6 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 6 | operation>::template TypeTraits<Element>::ResultType; | 269 | 6 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 6 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 6 | if constexpr (is_decimal(Element)) { | 273 | 6 | return ColVecResultType::create(0, column->get_scale()); | 274 | 6 | } else { | 275 | 6 | return ColVecResultType::create(); | 276 | 6 | } | 277 | 6 | }; | 278 | | | 279 | 6 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 6 | res_ptr, type, data, offsets, create_column); | 281 | 6 | } | 282 | 6 | } | 283 | 6 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 4 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 4 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 4 | } else { | 266 | 4 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 4 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 4 | operation>::template TypeTraits<Element>::ResultType; | 269 | 4 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 4 | if constexpr (is_decimal(Element)) { | 273 | 4 | return ColVecResultType::create(0, column->get_scale()); | 274 | 4 | } else { | 275 | 4 | return ColVecResultType::create(); | 276 | 4 | } | 277 | 4 | }; | 278 | | | 279 | 4 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 4 | res_ptr, type, data, offsets, create_column); | 281 | 4 | } | 282 | 4 | } | 283 | 4 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 2 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 2 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 2 | } else { | 266 | 2 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 2 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 2 | operation>::template TypeTraits<Element>::ResultType; | 269 | 2 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 2 | if constexpr (is_decimal(Element)) { | 273 | 2 | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; | 278 | | | 279 | 2 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 2 | res_ptr, type, data, offsets, create_column); | 281 | 2 | } | 282 | 2 | } | 283 | 2 | } |
Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE25EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE26EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE42EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE0EE12execute_typeILNS_13PrimitiveTypeE10EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE36EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 18 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 18 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 18 | } else { | 266 | 18 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 18 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 18 | operation>::template TypeTraits<Element>::ResultType; | 269 | 18 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 18 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 18 | if constexpr (is_decimal(Element)) { | 273 | 18 | return ColVecResultType::create(0, column->get_scale()); | 274 | 18 | } else { | 275 | 18 | return ColVecResultType::create(); | 276 | 18 | } | 277 | 18 | }; | 278 | | | 279 | 18 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 18 | res_ptr, type, data, offsets, create_column); | 281 | 18 | } | 282 | 18 | } | 283 | 18 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE37EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 16 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 16 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 16 | } else { | 266 | 16 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 16 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 16 | operation>::template TypeTraits<Element>::ResultType; | 269 | 16 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 16 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 16 | if constexpr (is_decimal(Element)) { | 273 | 16 | return ColVecResultType::create(0, column->get_scale()); | 274 | 16 | } else { | 275 | 16 | return ColVecResultType::create(); | 276 | 16 | } | 277 | 16 | }; | 278 | | | 279 | 16 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 16 | res_ptr, type, data, offsets, create_column); | 281 | 16 | } | 282 | 16 | } | 283 | 16 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE2EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 14 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 14 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 14 | } else { | 266 | 14 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 14 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 14 | operation>::template TypeTraits<Element>::ResultType; | 269 | 14 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 14 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 14 | if constexpr (is_decimal(Element)) { | 273 | 14 | return ColVecResultType::create(0, column->get_scale()); | 274 | 14 | } else { | 275 | 14 | return ColVecResultType::create(); | 276 | 14 | } | 277 | 14 | }; | 278 | | | 279 | 14 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 14 | res_ptr, type, data, offsets, create_column); | 281 | 14 | } | 282 | 14 | } | 283 | 14 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE3EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 14 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 14 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 14 | } else { | 266 | 14 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 14 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 14 | operation>::template TypeTraits<Element>::ResultType; | 269 | 14 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 14 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 14 | if constexpr (is_decimal(Element)) { | 273 | 14 | return ColVecResultType::create(0, column->get_scale()); | 274 | 14 | } else { | 275 | 14 | return ColVecResultType::create(); | 276 | 14 | } | 277 | 14 | }; | 278 | | | 279 | 14 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 14 | res_ptr, type, data, offsets, create_column); | 281 | 14 | } | 282 | 14 | } | 283 | 14 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE4EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 12 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 12 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 12 | } else { | 266 | 12 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 12 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 12 | operation>::template TypeTraits<Element>::ResultType; | 269 | 12 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 12 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 12 | if constexpr (is_decimal(Element)) { | 273 | 12 | return ColVecResultType::create(0, column->get_scale()); | 274 | 12 | } else { | 275 | 12 | return ColVecResultType::create(); | 276 | 12 | } | 277 | 12 | }; | 278 | | | 279 | 12 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 12 | res_ptr, type, data, offsets, create_column); | 281 | 12 | } | 282 | 12 | } | 283 | 12 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE5EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 10 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 10 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 10 | } else { | 266 | 10 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 10 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 10 | operation>::template TypeTraits<Element>::ResultType; | 269 | 10 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 10 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 10 | if constexpr (is_decimal(Element)) { | 273 | 10 | return ColVecResultType::create(0, column->get_scale()); | 274 | 10 | } else { | 275 | 10 | return ColVecResultType::create(); | 276 | 10 | } | 277 | 10 | }; | 278 | | | 279 | 10 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 10 | res_ptr, type, data, offsets, create_column); | 281 | 10 | } | 282 | 10 | } | 283 | 10 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE6EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 8 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 8 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 8 | } else { | 266 | 8 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 8 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 8 | operation>::template TypeTraits<Element>::ResultType; | 269 | 8 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 8 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 8 | if constexpr (is_decimal(Element)) { | 273 | 8 | return ColVecResultType::create(0, column->get_scale()); | 274 | 8 | } else { | 275 | 8 | return ColVecResultType::create(); | 276 | 8 | } | 277 | 8 | }; | 278 | | | 279 | 8 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 8 | res_ptr, type, data, offsets, create_column); | 281 | 8 | } | 282 | 8 | } | 283 | 8 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE7EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 6 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 6 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 6 | } else { | 266 | 6 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 6 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 6 | operation>::template TypeTraits<Element>::ResultType; | 269 | 6 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 6 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 6 | if constexpr (is_decimal(Element)) { | 273 | 6 | return ColVecResultType::create(0, column->get_scale()); | 274 | 6 | } else { | 275 | 6 | return ColVecResultType::create(); | 276 | 6 | } | 277 | 6 | }; | 278 | | | 279 | 6 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 6 | res_ptr, type, data, offsets, create_column); | 281 | 6 | } | 282 | 6 | } | 283 | 6 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE8EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 4 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 4 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 4 | } else { | 266 | 4 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 4 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 4 | operation>::template TypeTraits<Element>::ResultType; | 269 | 4 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 4 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 4 | if constexpr (is_decimal(Element)) { | 273 | 4 | return ColVecResultType::create(0, column->get_scale()); | 274 | 4 | } else { | 275 | 4 | return ColVecResultType::create(); | 276 | 4 | } | 277 | 4 | }; | 278 | | | 279 | 4 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 4 | res_ptr, type, data, offsets, create_column); | 281 | 4 | } | 282 | 4 | } | 283 | 4 | } |
_ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE9EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Line | Count | Source | 245 | 2 | const ColumnArray::Offsets64& offsets) { | 246 | | if constexpr (is_string_type(Element)) { | 247 | | if (operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || | 248 | | operation == AggregateOperation::AVERAGE) { | 249 | | return false; | 250 | | } | 251 | | | 252 | | auto create_column = [](const ColumnString*) -> ColumnPtr { | 253 | | return ColumnString::create(); | 254 | | }; | 255 | | | 256 | | return execute_type_impl<ColumnString, decltype(create_column)>(res_ptr, type, data, | 257 | | offsets, create_column); | 258 | 2 | } else { | 259 | | if constexpr ((operation == AggregateOperation::SUM || | 260 | | operation == AggregateOperation::PRODUCT || | 261 | | operation == AggregateOperation::AVERAGE) && | 262 | | (is_date_type(Element) || is_timestamptz_type(Element) || | 263 | | is_decimalv3(Element))) { | 264 | | return false; | 265 | 2 | } else { | 266 | 2 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; | 267 | 2 | static constexpr PrimitiveType ResultType = AggregateFunctionTraits< | 268 | 2 | operation>::template TypeTraits<Element>::ResultType; | 269 | 2 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; | 270 | | | 271 | 2 | auto create_column = [](const ColVecType* column) -> ColumnPtr { | 272 | 2 | if constexpr (is_decimal(Element)) { | 273 | 2 | return ColVecResultType::create(0, column->get_scale()); | 274 | 2 | } else { | 275 | 2 | return ColVecResultType::create(); | 276 | 2 | } | 277 | 2 | }; | 278 | | | 279 | 2 | return execute_type_impl<ColVecType, decltype(create_column)>( | 280 | 2 | res_ptr, type, data, offsets, create_column); | 281 | 2 | } | 282 | 2 | } | 283 | 2 | } |
Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE25EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE26EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE42EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris18ArrayAggregateImplILNS_18AggregateOperationE1EE12execute_typeILNS_13PrimitiveTypeE10EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEEPKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE |
284 | | }; |
285 | | |
286 | | struct NameArrayMin { |
287 | | static constexpr auto name = "array_min"; |
288 | | }; |
289 | | |
290 | | template <> |
291 | | struct ArrayAggregateFunctionCreator<AggregateOperation::MIN, |
292 | | AggregateFunctionTraits<AggregateOperation::MIN>> { |
293 | | static auto create(const DataTypePtr& data_type_ptr, const AggregateFunctionAttr& attr) |
294 | 36 | -> AggregateFunctionPtr { |
295 | 36 | return create_aggregate_function_single_value<AggregateFunctionMinData>( |
296 | 36 | NameArrayMin::name, {make_nullable(data_type_ptr)}, make_nullable(data_type_ptr), |
297 | 36 | true, attr); |
298 | 36 | } |
299 | | }; |
300 | | |
301 | | struct NameArrayMax { |
302 | | static constexpr auto name = "array_max"; |
303 | | }; |
304 | | |
305 | | template <> |
306 | | struct ArrayAggregateFunctionCreator<AggregateOperation::MAX, |
307 | | AggregateFunctionTraits<AggregateOperation::MAX>> { |
308 | | static auto create(const DataTypePtr& data_type_ptr, const AggregateFunctionAttr& attr) |
309 | 36 | -> AggregateFunctionPtr { |
310 | 36 | return create_aggregate_function_single_value<AggregateFunctionMaxData>( |
311 | 36 | NameArrayMax::name, {make_nullable(data_type_ptr)}, make_nullable(data_type_ptr), |
312 | 36 | true, attr); |
313 | 36 | } |
314 | | }; |
315 | | |
316 | | struct NameArraySum { |
317 | | static constexpr auto name = "array_sum"; |
318 | | }; |
319 | | |
320 | | struct NameArrayAverage { |
321 | | static constexpr auto name = "array_avg"; |
322 | | }; |
323 | | struct NameArrayProduct { |
324 | | static constexpr auto name = "array_product"; |
325 | | }; |
326 | | |
327 | | using FunctionArrayMin = |
328 | | FunctionArrayMapped<ArrayAggregateImpl<AggregateOperation::MIN>, NameArrayMin>; |
329 | | using FunctionArrayMax = |
330 | | FunctionArrayMapped<ArrayAggregateImpl<AggregateOperation::MAX>, NameArrayMax>; |
331 | | using FunctionArraySum = |
332 | | FunctionArrayMapped<ArrayAggregateImpl<AggregateOperation::SUM>, NameArraySum>; |
333 | | using FunctionArrayAverage = |
334 | | FunctionArrayMapped<ArrayAggregateImpl<AggregateOperation::AVERAGE>, NameArrayAverage>; |
335 | | using FunctionArrayProduct = |
336 | | FunctionArrayMapped<ArrayAggregateImpl<AggregateOperation::PRODUCT>, NameArrayProduct>; |
337 | | |
338 | | using FunctionArrayJoin = FunctionArrayMapped<ArrayJoinImpl, NameArrayJoin>; |
339 | | |
340 | | template <AggregateOperation operation> |
341 | | struct AggregateFunctionTraitsWithResultType; |
342 | | |
343 | | template <> |
344 | | struct AggregateFunctionTraitsWithResultType<AggregateOperation::SUM> { |
345 | | template <PrimitiveType InputType, PrimitiveType ResultType> |
346 | | struct TypeTraits { |
347 | | using AggregateDataType = AggregateFunctionSumData<ResultType>; |
348 | | using Function = AggregateFunctionSum<InputType, ResultType, AggregateDataType>; |
349 | | }; |
350 | | }; |
351 | | template <> |
352 | | struct AggregateFunctionTraitsWithResultType<AggregateOperation::AVERAGE> { |
353 | | template <PrimitiveType InputType, PrimitiveType ResultType> |
354 | | struct TypeTraits { |
355 | | using AggregateDataType = AggregateFunctionAvgData<ResultType>; |
356 | | using Function = AggregateFunctionAvg<InputType, ResultType, AggregateDataType>; |
357 | | }; |
358 | | }; |
359 | | template <> |
360 | | struct AggregateFunctionTraitsWithResultType<AggregateOperation::PRODUCT> { |
361 | | template <PrimitiveType InputType, PrimitiveType ResultType> |
362 | | struct TypeTraits { |
363 | | using AggregateDataType = AggregateFunctionProductData<ResultType>; |
364 | | using Function = AggregateFunctionProduct<InputType, ResultType, AggregateDataType>; |
365 | | }; |
366 | | }; |
367 | | template <typename Derived> |
368 | | struct ArrayAggregateFunctionCreatorWithResultType { |
369 | | template <PrimitiveType InputType, PrimitiveType ResultType> |
370 | | using Function = typename Derived::template TypeTraits<InputType, ResultType>::Function; |
371 | | |
372 | | static auto create(const DataTypePtr& data_type_ptr, const DataTypePtr& result_type_ptr, |
373 | 0 | const AggregateFunctionAttr& attr) -> AggregateFunctionPtr { |
374 | 0 | return creator_with_type_list< |
375 | 0 | TYPE_DECIMAL32, TYPE_DECIMAL64, TYPE_DECIMAL128I, |
376 | 0 | TYPE_DECIMAL256>::creator_with_result_type<Function>("", |
377 | 0 | DataTypes {make_nullable( |
378 | 0 | data_type_ptr)}, |
379 | 0 | result_type_ptr, true, attr); |
380 | 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 |
381 | | }; |
382 | | template <AggregateOperation operation, PrimitiveType ResultType> |
383 | | struct ArrayAggregateImplDecimalV3; |
384 | | template <AggregateOperation operation, PrimitiveType ResultType> |
385 | | requires(operation == AggregateOperation::SUM || operation == AggregateOperation::PRODUCT || |
386 | | operation == AggregateOperation::AVERAGE) |
387 | | struct ArrayAggregateImplDecimalV3<operation, ResultType> { |
388 | | using column_type = ColumnArray; |
389 | | using data_type = DataTypeArray; |
390 | | |
391 | 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 |
392 | | |
393 | 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 |
394 | | |
395 | 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 |
396 | | |
397 | 0 | static DataTypePtr get_return_type(const DataTypes& arguments) { |
398 | 0 | throw doris::Exception( |
399 | 0 | ErrorCode::NOT_IMPLEMENTED_ERROR, |
400 | 0 | "get_return_type is not implemented for ArrayAggregateImplDecimalV3"); |
401 | 0 | __builtin_unreachable(); |
402 | 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 |
403 | | |
404 | | static Status execute(Block& block, const ColumnNumbers& arguments, uint32_t result, |
405 | | const DataTypePtr& result_type, const DataTypeArray* data_type_array, |
406 | 0 | const ColumnArray& array) { |
407 | 0 | ColumnPtr res; |
408 | 0 | DataTypePtr type = data_type_array->get_nested_type(); |
409 | 0 | const IColumn* data = array.get_data_ptr().get(); |
410 | |
|
411 | 0 | const auto& offsets = array.get_offsets(); |
412 | |
|
413 | 0 | if (execute_type<TYPE_DECIMAL32>(res, result_type, type, data, offsets) || |
414 | 0 | execute_type<TYPE_DECIMAL64>(res, result_type, type, data, offsets) || |
415 | 0 | execute_type<TYPE_DECIMAL128I>(res, result_type, type, data, offsets) || |
416 | 0 | execute_type<TYPE_DECIMAL256>(res, result_type, type, data, offsets)) { |
417 | 0 | block.replace_by_position(result, std::move(res)); |
418 | 0 | return Status::OK(); |
419 | 0 | } else { |
420 | 0 | return Status::RuntimeError("Unexpected column for aggregation: {}", data->get_name()); |
421 | 0 | } |
422 | 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 |
423 | | |
424 | | template <typename ColumnType, typename CreateColumnFunc> |
425 | | static bool execute_type_impl(ColumnPtr& res_ptr, const DataTypePtr& result_type, |
426 | | const DataTypePtr& type, const IColumn* data, |
427 | | const ColumnArray::Offsets64& offsets, |
428 | 0 | CreateColumnFunc create_column_func) { |
429 | 0 | using Function = ArrayAggregateFunctionCreatorWithResultType< |
430 | 0 | AggregateFunctionTraitsWithResultType<operation>>; |
431 | |
|
432 | 0 | const ColumnType* column = |
433 | 0 | data->is_nullable() |
434 | 0 | ? check_and_get_column<ColumnType>( |
435 | 0 | static_cast<const ColumnNullable*>(data)->get_nested_column()) |
436 | 0 | : check_and_get_column<ColumnType>(&*data); |
437 | 0 | if (!column) { |
438 | 0 | return false; |
439 | 0 | } |
440 | | |
441 | 0 | ColumnPtr res_column = create_column_func(column); |
442 | 0 | res_column = make_nullable(res_column); |
443 | 0 | assert_cast<ColumnNullable&>(res_column->assume_mutable_ref()).reserve(offsets.size()); |
444 | |
|
445 | 0 | auto function = Function::create(type, result_type, |
446 | 0 | {.is_window_function = false, .column_names = {}}); |
447 | 0 | auto guard = AggregateFunctionGuard(function.get()); |
448 | 0 | Arena arena; |
449 | 0 | auto nullable_column = make_nullable(data->get_ptr()); |
450 | 0 | const IColumn* columns[] = {nullable_column.get()}; |
451 | 0 | for (int64_t i = 0; i < offsets.size(); ++i) { |
452 | 0 | auto start = offsets[i - 1]; // -1 is ok. |
453 | 0 | auto end = offsets[i]; |
454 | 0 | bool is_empty = (start == end); |
455 | 0 | if (is_empty) { |
456 | 0 | res_column->assume_mutable()->insert_default(); |
457 | 0 | continue; |
458 | 0 | } |
459 | 0 | function->reset(guard.data()); |
460 | 0 | function->add_batch_range(start, end - 1, guard.data(), columns, arena, |
461 | 0 | data->is_nullable()); |
462 | 0 | function->insert_result_into(guard.data(), res_column->assume_mutable_ref()); |
463 | 0 | } |
464 | 0 | res_ptr = std::move(res_column); |
465 | 0 | return true; |
466 | 0 | } Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EE17execute_type_implINS_13ColumnDecimalILS2_28EEEZNS3_12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS9_EERKSt10shared_ptrIKNS_9IDataTypeEESJ_PKS9_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_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_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEEUlPKS6_E_EEbSD_SJ_SJ_SL_SS_T0_ |
467 | | |
468 | | template <PrimitiveType Element> |
469 | | static bool execute_type(ColumnPtr& res_ptr, const DataTypePtr& result_type, |
470 | | const DataTypePtr& type, const IColumn* data, |
471 | 0 | const ColumnArray::Offsets64& offsets) { |
472 | 0 | using ColVecType = typename PrimitiveTypeTraits<Element>::ColumnType; |
473 | 0 | using ColVecResultType = typename PrimitiveTypeTraits<ResultType>::ColumnType; |
474 | |
|
475 | 0 | auto create_column = [](const ColVecType* column) -> ColumnPtr { |
476 | 0 | return ColVecResultType::create(0, column->get_scale()); |
477 | 0 | }; Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EE12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_28EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EE12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_29EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EE12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_30EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EE12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_35EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EE12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_28EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EE12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_29EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EE12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_30EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EE12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_35EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EE12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_28EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EE12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_29EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EE12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_30EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EE12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_35EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EE12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_28EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EE12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_29EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EE12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_30EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EE12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_35EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EE12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_28EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EE12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_29EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EE12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_30EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EE12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_35EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EE12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_28EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EE12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_29EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EE12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_30EEEE_clEST_ Unexecuted instantiation: _ZZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EE12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEEENKUlPKNS_13ColumnDecimalILS2_35EEEE_clEST_ |
478 | |
|
479 | 0 | return execute_type_impl<ColVecType, decltype(create_column)>(res_ptr, result_type, type, |
480 | 0 | data, offsets, create_column); |
481 | 0 | } Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EE12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EE12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EE12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE30EE12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EE12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EE12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EE12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE2ELNS_13PrimitiveTypeE35EE12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EE12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EE12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EE12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE30EE12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EE12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EE12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EE12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE3ELNS_13PrimitiveTypeE35EE12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EE12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EE12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EE12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE30EE12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EE12execute_typeILS2_28EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EE12execute_typeILS2_29EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EE12execute_typeILS2_30EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE Unexecuted instantiation: _ZN5doris27ArrayAggregateImplDecimalV3ILNS_18AggregateOperationE4ELNS_13PrimitiveTypeE35EE12execute_typeILS2_35EEEbRNS_3COWINS_7IColumnEE13immutable_ptrIS6_EERKSt10shared_ptrIKNS_9IDataTypeEESG_PKS6_RKNS_8PODArrayImLm4096ENS_9AllocatorILb0ELb0ELb0ENS_22DefaultMemoryAllocatorELb0EEELm16ELm15EEE |
482 | | }; |
483 | | |
484 | | template <typename Impl, typename Name> |
485 | | class FunctionArrayAggDecimalV3 : public IFunction { |
486 | | public: |
487 | | static constexpr auto name = Name::name; |
488 | | explicit FunctionArrayAggDecimalV3(DataTypePtr result_type) |
489 | 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 |
490 | | |
491 | 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 |
492 | | Status execute_impl(FunctionContext* context, Block& block, const ColumnNumbers& arguments, |
493 | 0 | uint32_t result, size_t input_rows_count) const override { |
494 | 0 | const auto& typed_column = block.get_by_position(arguments[0]); |
495 | 0 | auto ptr = typed_column.column->convert_to_full_column_if_const(); |
496 | 0 | const typename Impl::column_type* column_array; |
497 | 0 | if (ptr->is_nullable()) { |
498 | 0 | column_array = check_and_get_column<const typename Impl::column_type>( |
499 | 0 | assert_cast<const ColumnNullable*>(ptr.get())->get_nested_column_ptr().get()); |
500 | 0 | } else { |
501 | 0 | column_array = check_and_get_column<const typename Impl::column_type>(ptr.get()); |
502 | 0 | } |
503 | 0 | const auto* data_type_array = |
504 | 0 | assert_cast<const DataTypeArray*>(remove_nullable(typed_column.type).get()); |
505 | 0 | return Impl::execute(block, arguments, result, _result_type, data_type_array, |
506 | 0 | *column_array); |
507 | 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 |
508 | | |
509 | 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 |
510 | | |
511 | 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 |
512 | | |
513 | 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 |
514 | | |
515 | 0 | DataTypePtr get_return_type_impl(const DataTypes& arguments) const override { |
516 | 0 | return Impl::get_return_type(arguments); |
517 | 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 |
518 | | |
519 | | private: |
520 | | DataTypePtr _result_type; |
521 | | }; |
522 | | template <PrimitiveType ResultType> |
523 | | struct ArraySumDecimalV3Attributes { |
524 | | static_assert(is_decimalv3(ResultType)); |
525 | | using AggregateDataType = AggregateFunctionSumData<ResultType>; |
526 | | using Function = FunctionArrayAggDecimalV3< |
527 | | ArrayAggregateImplDecimalV3<AggregateOperation::SUM, ResultType>, NameArraySum>; |
528 | | }; |
529 | | template <PrimitiveType ResultType> |
530 | | using ArraySumDecimalV3 = typename ArraySumDecimalV3Attributes<ResultType>::Function; |
531 | | |
532 | | template <PrimitiveType ResultType> |
533 | | struct ArrayAvgDecimalV3Attributes { |
534 | | static_assert(is_decimalv3(ResultType)); |
535 | | using AggregateDataType = AggregateFunctionAvgData<ResultType>; |
536 | | using Function = FunctionArrayAggDecimalV3< |
537 | | ArrayAggregateImplDecimalV3<AggregateOperation::AVERAGE, ResultType>, NameArrayAverage>; |
538 | | }; |
539 | | template <PrimitiveType ResultType> |
540 | | using ArrayAvgDecimalV3 = typename ArrayAvgDecimalV3Attributes<ResultType>::Function; |
541 | | |
542 | | template <PrimitiveType ResultType> |
543 | | struct ArrayProductDecimalV3Attributes { |
544 | | static_assert(is_decimalv3(ResultType)); |
545 | | using AggregateDataType = AggregateFunctionProductData<ResultType>; |
546 | | using Function = FunctionArrayAggDecimalV3< |
547 | | ArrayAggregateImplDecimalV3<AggregateOperation::PRODUCT, ResultType>, NameArrayProduct>; |
548 | | }; |
549 | | template <PrimitiveType ResultType> |
550 | | using ArrayProductDecimalV3 = typename ArrayProductDecimalV3Attributes<ResultType>::Function; |
551 | 1 | void register_array_reduce_agg_functions(SimpleFunctionFactory& factory) { |
552 | 1 | { |
553 | 14 | ArrayAggFunctionCreator creator = [&](const DataTypePtr& result_type) { |
554 | 14 | if (is_decimalv3(result_type->get_primitive_type())) { |
555 | 0 | return DefaultFunctionBuilder::create_array_agg_function_decimalv3< |
556 | 0 | ArraySumDecimalV3>(result_type); |
557 | 14 | } else { |
558 | 14 | FunctionBuilderPtr func = |
559 | 14 | std::make_shared<DefaultFunctionBuilder>(FunctionArraySum::create()); |
560 | 14 | return func; |
561 | 14 | } |
562 | 14 | }; |
563 | 1 | factory.register_array_agg_function(NameArraySum::name, creator); |
564 | 1 | } |
565 | 1 | { |
566 | 14 | ArrayAggFunctionCreator creator = [&](const DataTypePtr& result_type) { |
567 | 14 | if (is_decimalv3(result_type->get_primitive_type())) { |
568 | 0 | return DefaultFunctionBuilder::create_array_agg_function_decimalv3< |
569 | 0 | ArrayAvgDecimalV3>(result_type); |
570 | 14 | } else { |
571 | 14 | FunctionBuilderPtr func = |
572 | 14 | std::make_shared<DefaultFunctionBuilder>(FunctionArrayAverage::create()); |
573 | 14 | return func; |
574 | 14 | } |
575 | 14 | }; |
576 | 1 | factory.register_array_agg_function(NameArrayAverage::name, creator); |
577 | 1 | } |
578 | 1 | { |
579 | 10 | ArrayAggFunctionCreator creator = [&](const DataTypePtr& result_type) { |
580 | 10 | if (is_decimalv3(result_type->get_primitive_type())) { |
581 | 0 | return DefaultFunctionBuilder::create_array_agg_function_decimalv3< |
582 | 0 | ArrayProductDecimalV3>(result_type); |
583 | 10 | } else { |
584 | 10 | FunctionBuilderPtr func = |
585 | 10 | std::make_shared<DefaultFunctionBuilder>(FunctionArrayProduct::create()); |
586 | 10 | return func; |
587 | 10 | } |
588 | 10 | }; |
589 | 1 | factory.register_array_agg_function(NameArrayProduct::name, creator); |
590 | 1 | } |
591 | 1 | } |
592 | | |
593 | 1 | void register_function_array_aggregation(SimpleFunctionFactory& factory) { |
594 | 1 | factory.register_function<FunctionArrayMin>(); |
595 | 1 | factory.register_function<FunctionArrayMax>(); |
596 | 1 | factory.register_function<FunctionArrayJoin>(); |
597 | 1 | register_array_reduce_agg_functions(factory); |
598 | 1 | } |
599 | | |
600 | | } // namespace doris |