be/src/exprs/aggregate/aggregate_function_map.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_map.h" |
19 | | |
20 | | #include "core/call_on_type_index.h" |
21 | | #include "exprs/aggregate/helpers.h" |
22 | | |
23 | | namespace doris { |
24 | | #include "common/compile_check_begin.h" |
25 | | |
26 | | template <PrimitiveType K> |
27 | | AggregateFunctionPtr create_agg_function_map_agg(const DataTypes& argument_types, |
28 | | const bool result_is_nullable, |
29 | 14 | const AggregateFunctionAttr& attr) { |
30 | 14 | return creator_without_type::create_ignore_nullable< |
31 | 14 | AggregateFunctionMapAgg<AggregateFunctionMapAggData<K>, K>>(argument_types, |
32 | 14 | result_is_nullable, attr); |
33 | 14 | } Unexecuted instantiation: _ZN5doris27create_agg_function_map_aggILNS_13PrimitiveTypeE2EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris27create_agg_function_map_aggILNS_13PrimitiveTypeE3EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris27create_agg_function_map_aggILNS_13PrimitiveTypeE4EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE _ZN5doris27create_agg_function_map_aggILNS_13PrimitiveTypeE5EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Line | Count | Source | 29 | 2 | const AggregateFunctionAttr& attr) { | 30 | 2 | return creator_without_type::create_ignore_nullable< | 31 | 2 | AggregateFunctionMapAgg<AggregateFunctionMapAggData<K>, K>>(argument_types, | 32 | 2 | result_is_nullable, attr); | 33 | 2 | } |
_ZN5doris27create_agg_function_map_aggILNS_13PrimitiveTypeE6EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Line | Count | Source | 29 | 3 | const AggregateFunctionAttr& attr) { | 30 | 3 | return creator_without_type::create_ignore_nullable< | 31 | 3 | AggregateFunctionMapAgg<AggregateFunctionMapAggData<K>, K>>(argument_types, | 32 | 3 | result_is_nullable, attr); | 33 | 3 | } |
Unexecuted instantiation: _ZN5doris27create_agg_function_map_aggILNS_13PrimitiveTypeE7EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris27create_agg_function_map_aggILNS_13PrimitiveTypeE8EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris27create_agg_function_map_aggILNS_13PrimitiveTypeE9EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris27create_agg_function_map_aggILNS_13PrimitiveTypeE28EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris27create_agg_function_map_aggILNS_13PrimitiveTypeE29EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris27create_agg_function_map_aggILNS_13PrimitiveTypeE20EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris27create_agg_function_map_aggILNS_13PrimitiveTypeE30EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris27create_agg_function_map_aggILNS_13PrimitiveTypeE35EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris27create_agg_function_map_aggILNS_13PrimitiveTypeE11EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris27create_agg_function_map_aggILNS_13PrimitiveTypeE25EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris27create_agg_function_map_aggILNS_13PrimitiveTypeE26EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris27create_agg_function_map_aggILNS_13PrimitiveTypeE12EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris27create_agg_function_map_aggILNS_13PrimitiveTypeE27EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris27create_agg_function_map_aggILNS_13PrimitiveTypeE42EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris27create_agg_function_map_aggILNS_13PrimitiveTypeE36EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Unexecuted instantiation: _ZN5doris27create_agg_function_map_aggILNS_13PrimitiveTypeE37EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE _ZN5doris27create_agg_function_map_aggILNS_13PrimitiveTypeE23EEESt10shared_ptrINS_18IAggregateFunctionEERKSt6vectorIS2_IKNS_9IDataTypeEESaIS8_EEbRKNS_21AggregateFunctionAttrE Line | Count | Source | 29 | 9 | const AggregateFunctionAttr& attr) { | 30 | 9 | return creator_without_type::create_ignore_nullable< | 31 | 9 | AggregateFunctionMapAgg<AggregateFunctionMapAggData<K>, K>>(argument_types, | 32 | 9 | result_is_nullable, attr); | 33 | 9 | } |
|
34 | | |
35 | | AggregateFunctionPtr create_aggregate_function_map_agg(const std::string& name, |
36 | | const DataTypes& argument_types, |
37 | | const DataTypePtr& result_type, |
38 | | const bool result_is_nullable, |
39 | 14 | const AggregateFunctionAttr& attr) { |
40 | 14 | AggregateFunctionPtr agg_fn; |
41 | 14 | auto call = [&](const auto& type) -> bool { |
42 | 14 | using DispatcType = std::decay_t<decltype(type)>; |
43 | 14 | agg_fn = create_agg_function_map_agg<DispatcType::PType>(argument_types, result_is_nullable, |
44 | 14 | attr); |
45 | 14 | return true; |
46 | 14 | }; Unexecuted instantiation: aggregate_function_map.cpp:_ZZN5doris33create_aggregate_function_map_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE2EEEEEbRKT_ Unexecuted instantiation: aggregate_function_map.cpp:_ZZN5doris33create_aggregate_function_map_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE3EEEEEbRKT_ Unexecuted instantiation: aggregate_function_map.cpp:_ZZN5doris33create_aggregate_function_map_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE4EEEEEbRKT_ aggregate_function_map.cpp:_ZZN5doris33create_aggregate_function_map_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE5EEEEEbRKT_ Line | Count | Source | 41 | 2 | auto call = [&](const auto& type) -> bool { | 42 | 2 | using DispatcType = std::decay_t<decltype(type)>; | 43 | 2 | agg_fn = create_agg_function_map_agg<DispatcType::PType>(argument_types, result_is_nullable, | 44 | 2 | attr); | 45 | 2 | return true; | 46 | 2 | }; |
aggregate_function_map.cpp:_ZZN5doris33create_aggregate_function_map_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE6EEEEEbRKT_ Line | Count | Source | 41 | 3 | auto call = [&](const auto& type) -> bool { | 42 | 3 | using DispatcType = std::decay_t<decltype(type)>; | 43 | 3 | agg_fn = create_agg_function_map_agg<DispatcType::PType>(argument_types, result_is_nullable, | 44 | 3 | attr); | 45 | 3 | return true; | 46 | 3 | }; |
Unexecuted instantiation: aggregate_function_map.cpp:_ZZN5doris33create_aggregate_function_map_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE7EEEEEbRKT_ Unexecuted instantiation: aggregate_function_map.cpp:_ZZN5doris33create_aggregate_function_map_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE8EEEEEbRKT_ Unexecuted instantiation: aggregate_function_map.cpp:_ZZN5doris33create_aggregate_function_map_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE9EEEEEbRKT_ Unexecuted instantiation: aggregate_function_map.cpp:_ZZN5doris33create_aggregate_function_map_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE28EEEEEbRKT_ Unexecuted instantiation: aggregate_function_map.cpp:_ZZN5doris33create_aggregate_function_map_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE29EEEEEbRKT_ Unexecuted instantiation: aggregate_function_map.cpp:_ZZN5doris33create_aggregate_function_map_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE20EEEEEbRKT_ Unexecuted instantiation: aggregate_function_map.cpp:_ZZN5doris33create_aggregate_function_map_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE30EEEEEbRKT_ Unexecuted instantiation: aggregate_function_map.cpp:_ZZN5doris33create_aggregate_function_map_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE35EEEEEbRKT_ Unexecuted instantiation: aggregate_function_map.cpp:_ZZN5doris33create_aggregate_function_map_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE11EEEEEbRKT_ Unexecuted instantiation: aggregate_function_map.cpp:_ZZN5doris33create_aggregate_function_map_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE25EEEEEbRKT_ Unexecuted instantiation: aggregate_function_map.cpp:_ZZN5doris33create_aggregate_function_map_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE26EEEEEbRKT_ Unexecuted instantiation: aggregate_function_map.cpp:_ZZN5doris33create_aggregate_function_map_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE12EEEEEbRKT_ Unexecuted instantiation: aggregate_function_map.cpp:_ZZN5doris33create_aggregate_function_map_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE27EEEEEbRKT_ Unexecuted instantiation: aggregate_function_map.cpp:_ZZN5doris33create_aggregate_function_map_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE42EEEEEbRKT_ Unexecuted instantiation: aggregate_function_map.cpp:_ZZN5doris33create_aggregate_function_map_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE36EEEEEbRKT_ Unexecuted instantiation: aggregate_function_map.cpp:_ZZN5doris33create_aggregate_function_map_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE37EEEEEbRKT_ aggregate_function_map.cpp:_ZZN5doris33create_aggregate_function_map_aggERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaISC_EERKSC_bRKNS_21AggregateFunctionAttrEENK3$_0clINS_16DispatchDataTypeILNS_13PrimitiveTypeE23EEEEEbRKT_ Line | Count | Source | 41 | 9 | auto call = [&](const auto& type) -> bool { | 42 | 9 | using DispatcType = std::decay_t<decltype(type)>; | 43 | 9 | agg_fn = create_agg_function_map_agg<DispatcType::PType>(argument_types, result_is_nullable, | 44 | 9 | attr); | 45 | 9 | return true; | 46 | 9 | }; |
|
47 | | |
48 | 14 | if (!dispatch_switch_all(argument_types[0]->get_primitive_type(), call)) { |
49 | 0 | LOG(WARNING) << fmt::format("unsupported input type {} for aggregate function {}", |
50 | 0 | argument_types[0]->get_name(), name); |
51 | 0 | return nullptr; |
52 | 0 | } |
53 | 14 | return agg_fn; |
54 | 14 | } |
55 | | |
56 | 6 | void register_aggregate_function_map_agg(AggregateFunctionSimpleFactory& factory) { |
57 | 6 | factory.register_function_both("map_agg_v1", create_aggregate_function_map_agg); |
58 | 6 | factory.register_alias("map_agg_v1", "map_agg"); |
59 | 6 | } |
60 | | |
61 | | } // namespace doris |