be/src/exprs/aggregate/aggregate_function_array_agg.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 | | |
18 | | #include "exprs/aggregate/aggregate_function_array_agg.h" |
19 | | |
20 | | #include "core/call_on_type_index.h" |
21 | | #include "exprs/aggregate/aggregate_function_collect.h" |
22 | | #include "exprs/aggregate/aggregate_function_simple_factory.h" |
23 | | #include "exprs/aggregate/helpers.h" |
24 | | |
25 | | namespace doris { |
26 | | #include "common/compile_check_begin.h" |
27 | | |
28 | | template <PrimitiveType T> |
29 | | AggregateFunctionPtr do_create_agg_function_collect(const DataTypes& argument_types, |
30 | | const bool result_is_nullable, |
31 | 8 | const AggregateFunctionAttr& attr) { |
32 | 8 | if (argument_types[0]->is_nullable()) { |
33 | 4 | return creator_without_type::create_ignore_nullable< |
34 | 4 | AggregateFunctionArrayAgg<AggregateFunctionArrayAggData<T>>>( |
35 | 4 | argument_types, result_is_nullable, attr); |
36 | 4 | } else { |
37 | 4 | return creator_without_type::create< |
38 | 4 | AggregateFunctionCollect<AggregateFunctionCollectListData<T, false>, false>>( |
39 | 4 | argument_types, result_is_nullable, attr); |
40 | 4 | } |
41 | 8 | } Unexecuted instantiation: _ZN5doris30do_create_agg_function_collectILNS_13PrimitiveTypeE2EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris30do_create_agg_function_collectILNS_13PrimitiveTypeE3EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris30do_create_agg_function_collectILNS_13PrimitiveTypeE4EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris30do_create_agg_function_collectILNS_13PrimitiveTypeE5EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE _ZN5doris30do_create_agg_function_collectILNS_13PrimitiveTypeE6EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Line | Count | Source | 31 | 3 | const AggregateFunctionAttr& attr) { | 32 | 3 | if (argument_types[0]->is_nullable()) { | 33 | 2 | return creator_without_type::create_ignore_nullable< | 34 | 2 | AggregateFunctionArrayAgg<AggregateFunctionArrayAggData<T>>>( | 35 | 2 | argument_types, result_is_nullable, attr); | 36 | 2 | } else { | 37 | 1 | return creator_without_type::create< | 38 | 1 | AggregateFunctionCollect<AggregateFunctionCollectListData<T, false>, false>>( | 39 | 1 | argument_types, result_is_nullable, attr); | 40 | 1 | } | 41 | 3 | } |
Unexecuted instantiation: _ZN5doris30do_create_agg_function_collectILNS_13PrimitiveTypeE7EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris30do_create_agg_function_collectILNS_13PrimitiveTypeE8EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris30do_create_agg_function_collectILNS_13PrimitiveTypeE9EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris30do_create_agg_function_collectILNS_13PrimitiveTypeE28EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris30do_create_agg_function_collectILNS_13PrimitiveTypeE29EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris30do_create_agg_function_collectILNS_13PrimitiveTypeE20EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris30do_create_agg_function_collectILNS_13PrimitiveTypeE30EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris30do_create_agg_function_collectILNS_13PrimitiveTypeE35EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris30do_create_agg_function_collectILNS_13PrimitiveTypeE11EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris30do_create_agg_function_collectILNS_13PrimitiveTypeE25EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris30do_create_agg_function_collectILNS_13PrimitiveTypeE26EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris30do_create_agg_function_collectILNS_13PrimitiveTypeE12EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris30do_create_agg_function_collectILNS_13PrimitiveTypeE27EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris30do_create_agg_function_collectILNS_13PrimitiveTypeE42EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris30do_create_agg_function_collectILNS_13PrimitiveTypeE36EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris30do_create_agg_function_collectILNS_13PrimitiveTypeE37EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE _ZN5doris30do_create_agg_function_collectILNS_13PrimitiveTypeE23EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Line | Count | Source | 31 | 2 | const AggregateFunctionAttr& attr) { | 32 | 2 | if (argument_types[0]->is_nullable()) { | 33 | 2 | return creator_without_type::create_ignore_nullable< | 34 | 2 | AggregateFunctionArrayAgg<AggregateFunctionArrayAggData<T>>>( | 35 | 2 | argument_types, result_is_nullable, attr); | 36 | 2 | } else { | 37 | 0 | return creator_without_type::create< | 38 | 0 | AggregateFunctionCollect<AggregateFunctionCollectListData<T, false>, false>>( | 39 | 0 | argument_types, result_is_nullable, attr); | 40 | 0 | } | 41 | 2 | } |
_ZN5doris30do_create_agg_function_collectILNS_13PrimitiveTypeE0EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Line | Count | Source | 31 | 3 | const AggregateFunctionAttr& attr) { | 32 | 3 | if (argument_types[0]->is_nullable()) { | 33 | 0 | return creator_without_type::create_ignore_nullable< | 34 | 0 | AggregateFunctionArrayAgg<AggregateFunctionArrayAggData<T>>>( | 35 | 0 | argument_types, result_is_nullable, attr); | 36 | 3 | } else { | 37 | 3 | return creator_without_type::create< | 38 | 3 | AggregateFunctionCollect<AggregateFunctionCollectListData<T, false>, false>>( | 39 | 3 | argument_types, result_is_nullable, attr); | 40 | 3 | } | 41 | 3 | } |
|
42 | | |
43 | | AggregateFunctionPtr create_aggregate_function_array_agg(const std::string& name, |
44 | | const DataTypes& argument_types, |
45 | | const DataTypePtr& result_type, |
46 | | const bool result_is_nullable, |
47 | 8 | const AggregateFunctionAttr& attr) { |
48 | 8 | AggregateFunctionPtr agg_fn; |
49 | 8 | auto call = [&](const auto& type) -> bool { |
50 | 5 | using DispatcType = std::decay_t<decltype(type)>; |
51 | 5 | agg_fn = do_create_agg_function_collect<DispatcType::PType>(argument_types, |
52 | 5 | result_is_nullable, attr); |
53 | 5 | return true; |
54 | 5 | }; Unexecuted instantiation: aggregate_function_array_agg.cpp:_ZZN5doris35create_aggregate_function_array_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE2EEEEEbRKT_ Unexecuted instantiation: aggregate_function_array_agg.cpp:_ZZN5doris35create_aggregate_function_array_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE3EEEEEbRKT_ Unexecuted instantiation: aggregate_function_array_agg.cpp:_ZZN5doris35create_aggregate_function_array_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE4EEEEEbRKT_ Unexecuted instantiation: aggregate_function_array_agg.cpp:_ZZN5doris35create_aggregate_function_array_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE5EEEEEbRKT_ aggregate_function_array_agg.cpp:_ZZN5doris35create_aggregate_function_array_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE6EEEEEbRKT_ Line | Count | Source | 49 | 3 | auto call = [&](const auto& type) -> bool { | 50 | 3 | using DispatcType = std::decay_t<decltype(type)>; | 51 | 3 | agg_fn = do_create_agg_function_collect<DispatcType::PType>(argument_types, | 52 | 3 | result_is_nullable, attr); | 53 | 3 | return true; | 54 | 3 | }; |
Unexecuted instantiation: aggregate_function_array_agg.cpp:_ZZN5doris35create_aggregate_function_array_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE7EEEEEbRKT_ Unexecuted instantiation: aggregate_function_array_agg.cpp:_ZZN5doris35create_aggregate_function_array_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE8EEEEEbRKT_ Unexecuted instantiation: aggregate_function_array_agg.cpp:_ZZN5doris35create_aggregate_function_array_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE9EEEEEbRKT_ Unexecuted instantiation: aggregate_function_array_agg.cpp:_ZZN5doris35create_aggregate_function_array_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbRKT_ Unexecuted instantiation: aggregate_function_array_agg.cpp:_ZZN5doris35create_aggregate_function_array_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbRKT_ Unexecuted instantiation: aggregate_function_array_agg.cpp:_ZZN5doris35create_aggregate_function_array_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbRKT_ Unexecuted instantiation: aggregate_function_array_agg.cpp:_ZZN5doris35create_aggregate_function_array_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbRKT_ Unexecuted instantiation: aggregate_function_array_agg.cpp:_ZZN5doris35create_aggregate_function_array_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbRKT_ Unexecuted instantiation: aggregate_function_array_agg.cpp:_ZZN5doris35create_aggregate_function_array_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE11EEEEEbRKT_ Unexecuted instantiation: aggregate_function_array_agg.cpp:_ZZN5doris35create_aggregate_function_array_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE25EEEEEbRKT_ Unexecuted instantiation: aggregate_function_array_agg.cpp:_ZZN5doris35create_aggregate_function_array_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE26EEEEEbRKT_ Unexecuted instantiation: aggregate_function_array_agg.cpp:_ZZN5doris35create_aggregate_function_array_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE12EEEEEbRKT_ Unexecuted instantiation: aggregate_function_array_agg.cpp:_ZZN5doris35create_aggregate_function_array_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE27EEEEEbRKT_ Unexecuted instantiation: aggregate_function_array_agg.cpp:_ZZN5doris35create_aggregate_function_array_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE42EEEEEbRKT_ Unexecuted instantiation: aggregate_function_array_agg.cpp:_ZZN5doris35create_aggregate_function_array_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE36EEEEEbRKT_ Unexecuted instantiation: aggregate_function_array_agg.cpp:_ZZN5doris35create_aggregate_function_array_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE37EEEEEbRKT_ aggregate_function_array_agg.cpp:_ZZN5doris35create_aggregate_function_array_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE23EEEEEbRKT_ Line | Count | Source | 49 | 2 | auto call = [&](const auto& type) -> bool { | 50 | 2 | using DispatcType = std::decay_t<decltype(type)>; | 51 | 2 | agg_fn = do_create_agg_function_collect<DispatcType::PType>(argument_types, | 52 | 2 | result_is_nullable, attr); | 53 | 2 | return true; | 54 | 2 | }; |
|
55 | | |
56 | 8 | if (!dispatch_switch_all(argument_types[0]->get_primitive_type(), call)) { |
57 | | // We do not care what the real type is. |
58 | 3 | agg_fn = do_create_agg_function_collect<INVALID_TYPE>(argument_types, result_is_nullable, |
59 | 3 | attr); |
60 | 3 | } |
61 | 8 | return agg_fn; |
62 | 8 | } |
63 | | |
64 | 1 | void register_aggregate_function_array_agg(AggregateFunctionSimpleFactory& factory) { |
65 | 1 | factory.register_function_both("array_agg", create_aggregate_function_array_agg); |
66 | 1 | } |
67 | | } // namespace doris |