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