Coverage Report

Created: 2026-07-07 17:25

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