be/src/exprs/aggregate/aggregate_function_uniq.h
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/AggregateFunctions/AggregateFunctionUniq.h |
19 | | // and modified by Doris |
20 | | |
21 | | #pragma once |
22 | | |
23 | | #include <stddef.h> |
24 | | |
25 | | #include <boost/iterator/iterator_facade.hpp> |
26 | | #include <memory> |
27 | | #include <type_traits> |
28 | | #include <vector> |
29 | | |
30 | | #include "common/compiler_util.h" // IWYU pragma: keep |
31 | | #include "core/assert_cast.h" |
32 | | #include "core/column/column.h" |
33 | | #include "core/column/column_vector.h" |
34 | | #include "core/data_type/data_type_number.h" |
35 | | #include "core/data_type/primitive_type.h" |
36 | | #include "core/string_ref.h" |
37 | | #include "core/types.h" |
38 | | #include "core/uint128.h" |
39 | | #include "exec/common/hash_table/hash.h" |
40 | | #include "exec/common/hash_table/phmap_fwd_decl.h" |
41 | | #include "exprs/aggregate/aggregate_function.h" |
42 | | #include "util/io_helper.h" |
43 | | #include "util/var_int.h" |
44 | | |
45 | | template <typename T> |
46 | | struct HashCRC32; |
47 | | |
48 | | namespace doris { |
49 | | #include "common/compile_check_begin.h" |
50 | | |
51 | | class Arena; |
52 | | class BufferReadable; |
53 | | class BufferWritable; |
54 | | template <PrimitiveType T> |
55 | | class ColumnDecimal; |
56 | | /// uniqExact |
57 | | |
58 | | template <PrimitiveType T> |
59 | | struct AggregateFunctionUniqExactData { |
60 | | static constexpr bool is_string_key = is_string_type(T) || is_varbinary(T); |
61 | | using Key = std::conditional_t< |
62 | | is_string_key, UInt128, |
63 | | std::conditional_t<T == TYPE_ARRAY, UInt64, |
64 | | std::conditional_t<T == TYPE_BOOLEAN, UInt8, |
65 | | typename PrimitiveTypeTraits<T>::CppType>>>; |
66 | | using Hash = HashCRC32<Key>; |
67 | | |
68 | | using Set = flat_hash_set<Key, Hash>; |
69 | | |
70 | 767 | static UInt128 ALWAYS_INLINE get_key(const StringRef& value) { |
71 | 767 | auto hash_value = XXH_INLINE_XXH128(value.data, value.size, 0); |
72 | 767 | return UInt128 {hash_value.high64, hash_value.low64}; |
73 | 767 | } _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE10EE7get_keyERKNS_9StringRefE Line | Count | Source | 70 | 743 | static UInt128 ALWAYS_INLINE get_key(const StringRef& value) { | 71 | 743 | auto hash_value = XXH_INLINE_XXH128(value.data, value.size, 0); | 72 | 743 | return UInt128 {hash_value.high64, hash_value.low64}; | 73 | 743 | } |
_ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE41EE7get_keyERKNS_9StringRefE Line | Count | Source | 70 | 24 | static UInt128 ALWAYS_INLINE get_key(const StringRef& value) { | 71 | 24 | auto hash_value = XXH_INLINE_XXH128(value.data, value.size, 0); | 72 | 24 | return UInt128 {hash_value.high64, hash_value.low64}; | 73 | 24 | } |
|
74 | 14 | static UInt64 ALWAYS_INLINE get_key(const IColumn& column, size_t row_num) { |
75 | 14 | UInt64 hash_value = 0; |
76 | 14 | column.update_xxHash_with_value(row_num, row_num + 1, hash_value, nullptr); |
77 | 14 | return hash_value; |
78 | 14 | } |
79 | | |
80 | | Set set; |
81 | | |
82 | 39 | static String get_name() { return "multi_distinct"; }Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE2EE8get_nameB5cxx11Ev Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE3EE8get_nameB5cxx11Ev Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE4EE8get_nameB5cxx11Ev _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE5EE8get_nameB5cxx11Ev Line | Count | Source | 82 | 26 | static String get_name() { return "multi_distinct"; } |
Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE6EE8get_nameB5cxx11Ev Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE7EE8get_nameB5cxx11Ev Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE28EE8get_nameB5cxx11Ev Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE29EE8get_nameB5cxx11Ev _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE30EE8get_nameB5cxx11Ev Line | Count | Source | 82 | 10 | static String get_name() { return "multi_distinct"; } |
Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE35EE8get_nameB5cxx11Ev _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE10EE8get_nameB5cxx11Ev Line | Count | Source | 82 | 3 | static String get_name() { return "multi_distinct"; } |
Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE17EE8get_nameB5cxx11Ev Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE8EE8get_nameB5cxx11Ev Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE9EE8get_nameB5cxx11Ev Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE25EE8get_nameB5cxx11Ev Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE26EE8get_nameB5cxx11Ev Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE42EE8get_nameB5cxx11Ev Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE41EE8get_nameB5cxx11Ev |
83 | | |
84 | 34 | void reset() { set.clear(); }Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE2EE5resetEv Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE3EE5resetEv Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE4EE5resetEv _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE5EE5resetEv Line | Count | Source | 84 | 31 | void reset() { set.clear(); } |
Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE6EE5resetEv Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE7EE5resetEv Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE28EE5resetEv Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE29EE5resetEv _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE30EE5resetEv Line | Count | Source | 84 | 3 | void reset() { set.clear(); } |
Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE35EE5resetEv Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE10EE5resetEv Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE17EE5resetEv Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE8EE5resetEv Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE9EE5resetEv Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE25EE5resetEv Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE26EE5resetEv Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE42EE5resetEv Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE41EE5resetEv |
85 | | }; |
86 | | |
87 | | namespace detail { |
88 | | |
89 | | /** The structure for the delegation work to add one element to the `uniq` aggregate functions. |
90 | | * Used for partial specialization to add strings. |
91 | | */ |
92 | | template <PrimitiveType T, typename Data> |
93 | | struct OneAdder { |
94 | 723 | static void ALWAYS_INLINE add(Data& data, const IColumn& column, size_t row_num) { |
95 | 723 | if constexpr (is_string_type(T) || is_varbinary(T)) { |
96 | 455 | StringRef value = column.get_data_at(row_num); |
97 | 455 | data.set.insert(Data::get_key(value)); |
98 | 455 | } else if constexpr (T == TYPE_ARRAY) { |
99 | 14 | data.set.insert(Data::get_key(column, row_num)); |
100 | 254 | } else { |
101 | 254 | data.set.insert(assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&, |
102 | 254 | TypeCheckOnRelease::DISABLE>(column) |
103 | 254 | .get_data()[row_num]); |
104 | 254 | } |
105 | 723 | } _ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE2ENS_30AggregateFunctionUniqExactDataILS2_2EEEE3addERS4_RKNS_7IColumnEm Line | Count | Source | 94 | 15 | static void ALWAYS_INLINE add(Data& data, const IColumn& column, size_t row_num) { | 95 | | if constexpr (is_string_type(T) || is_varbinary(T)) { | 96 | | StringRef value = column.get_data_at(row_num); | 97 | | data.set.insert(Data::get_key(value)); | 98 | | } else if constexpr (T == TYPE_ARRAY) { | 99 | | data.set.insert(Data::get_key(column, row_num)); | 100 | 15 | } else { | 101 | 15 | data.set.insert(assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&, | 102 | 15 | TypeCheckOnRelease::DISABLE>(column) | 103 | 15 | .get_data()[row_num]); | 104 | 15 | } | 105 | 15 | } |
Unexecuted instantiation: _ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE3ENS_30AggregateFunctionUniqExactDataILS2_3EEEE3addERS4_RKNS_7IColumnEm Unexecuted instantiation: _ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE4ENS_30AggregateFunctionUniqExactDataILS2_4EEEE3addERS4_RKNS_7IColumnEm _ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE5ENS_30AggregateFunctionUniqExactDataILS2_5EEEE3addERS4_RKNS_7IColumnEm Line | Count | Source | 94 | 176 | static void ALWAYS_INLINE add(Data& data, const IColumn& column, size_t row_num) { | 95 | | if constexpr (is_string_type(T) || is_varbinary(T)) { | 96 | | StringRef value = column.get_data_at(row_num); | 97 | | data.set.insert(Data::get_key(value)); | 98 | | } else if constexpr (T == TYPE_ARRAY) { | 99 | | data.set.insert(Data::get_key(column, row_num)); | 100 | 176 | } else { | 101 | 176 | data.set.insert(assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&, | 102 | 176 | TypeCheckOnRelease::DISABLE>(column) | 103 | 176 | .get_data()[row_num]); | 104 | 176 | } | 105 | 176 | } |
_ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE6ENS_30AggregateFunctionUniqExactDataILS2_6EEEE3addERS4_RKNS_7IColumnEm Line | Count | Source | 94 | 15 | static void ALWAYS_INLINE add(Data& data, const IColumn& column, size_t row_num) { | 95 | | if constexpr (is_string_type(T) || is_varbinary(T)) { | 96 | | StringRef value = column.get_data_at(row_num); | 97 | | data.set.insert(Data::get_key(value)); | 98 | | } else if constexpr (T == TYPE_ARRAY) { | 99 | | data.set.insert(Data::get_key(column, row_num)); | 100 | 15 | } else { | 101 | 15 | data.set.insert(assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&, | 102 | 15 | TypeCheckOnRelease::DISABLE>(column) | 103 | 15 | .get_data()[row_num]); | 104 | 15 | } | 105 | 15 | } |
Unexecuted instantiation: _ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE7ENS_30AggregateFunctionUniqExactDataILS2_7EEEE3addERS4_RKNS_7IColumnEm Unexecuted instantiation: _ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE28ENS_30AggregateFunctionUniqExactDataILS2_28EEEE3addERS4_RKNS_7IColumnEm _ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE29ENS_30AggregateFunctionUniqExactDataILS2_29EEEE3addERS4_RKNS_7IColumnEm Line | Count | Source | 94 | 4 | static void ALWAYS_INLINE add(Data& data, const IColumn& column, size_t row_num) { | 95 | | if constexpr (is_string_type(T) || is_varbinary(T)) { | 96 | | StringRef value = column.get_data_at(row_num); | 97 | | data.set.insert(Data::get_key(value)); | 98 | | } else if constexpr (T == TYPE_ARRAY) { | 99 | | data.set.insert(Data::get_key(column, row_num)); | 100 | 4 | } else { | 101 | 4 | data.set.insert(assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&, | 102 | 4 | TypeCheckOnRelease::DISABLE>(column) | 103 | 4 | .get_data()[row_num]); | 104 | 4 | } | 105 | 4 | } |
_ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE30ENS_30AggregateFunctionUniqExactDataILS2_30EEEE3addERS4_RKNS_7IColumnEm Line | Count | Source | 94 | 17 | static void ALWAYS_INLINE add(Data& data, const IColumn& column, size_t row_num) { | 95 | | if constexpr (is_string_type(T) || is_varbinary(T)) { | 96 | | StringRef value = column.get_data_at(row_num); | 97 | | data.set.insert(Data::get_key(value)); | 98 | | } else if constexpr (T == TYPE_ARRAY) { | 99 | | data.set.insert(Data::get_key(column, row_num)); | 100 | 17 | } else { | 101 | 17 | data.set.insert(assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&, | 102 | 17 | TypeCheckOnRelease::DISABLE>(column) | 103 | 17 | .get_data()[row_num]); | 104 | 17 | } | 105 | 17 | } |
Unexecuted instantiation: _ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE35ENS_30AggregateFunctionUniqExactDataILS2_35EEEE3addERS4_RKNS_7IColumnEm _ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE10ENS_30AggregateFunctionUniqExactDataILS2_10EEEE3addERS4_RKNS_7IColumnEm Line | Count | Source | 94 | 455 | static void ALWAYS_INLINE add(Data& data, const IColumn& column, size_t row_num) { | 95 | 455 | if constexpr (is_string_type(T) || is_varbinary(T)) { | 96 | 455 | StringRef value = column.get_data_at(row_num); | 97 | 455 | data.set.insert(Data::get_key(value)); | 98 | | } else if constexpr (T == TYPE_ARRAY) { | 99 | | data.set.insert(Data::get_key(column, row_num)); | 100 | | } else { | 101 | | data.set.insert(assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&, | 102 | | TypeCheckOnRelease::DISABLE>(column) | 103 | | .get_data()[row_num]); | 104 | | } | 105 | 455 | } |
_ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE17ENS_30AggregateFunctionUniqExactDataILS2_17EEEE3addERS4_RKNS_7IColumnEm Line | Count | Source | 94 | 14 | static void ALWAYS_INLINE add(Data& data, const IColumn& column, size_t row_num) { | 95 | | if constexpr (is_string_type(T) || is_varbinary(T)) { | 96 | | StringRef value = column.get_data_at(row_num); | 97 | | data.set.insert(Data::get_key(value)); | 98 | 14 | } else if constexpr (T == TYPE_ARRAY) { | 99 | 14 | data.set.insert(Data::get_key(column, row_num)); | 100 | | } else { | 101 | | data.set.insert(assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&, | 102 | | TypeCheckOnRelease::DISABLE>(column) | 103 | | .get_data()[row_num]); | 104 | | } | 105 | 14 | } |
Unexecuted instantiation: _ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE8ENS_30AggregateFunctionUniqExactDataILS2_8EEEE3addERS4_RKNS_7IColumnEm Unexecuted instantiation: _ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE9ENS_30AggregateFunctionUniqExactDataILS2_9EEEE3addERS4_RKNS_7IColumnEm _ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE25ENS_30AggregateFunctionUniqExactDataILS2_25EEEE3addERS4_RKNS_7IColumnEm Line | Count | Source | 94 | 6 | static void ALWAYS_INLINE add(Data& data, const IColumn& column, size_t row_num) { | 95 | | if constexpr (is_string_type(T) || is_varbinary(T)) { | 96 | | StringRef value = column.get_data_at(row_num); | 97 | | data.set.insert(Data::get_key(value)); | 98 | | } else if constexpr (T == TYPE_ARRAY) { | 99 | | data.set.insert(Data::get_key(column, row_num)); | 100 | 6 | } else { | 101 | 6 | data.set.insert(assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&, | 102 | 6 | TypeCheckOnRelease::DISABLE>(column) | 103 | 6 | .get_data()[row_num]); | 104 | 6 | } | 105 | 6 | } |
_ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE26ENS_30AggregateFunctionUniqExactDataILS2_26EEEE3addERS4_RKNS_7IColumnEm Line | Count | Source | 94 | 15 | static void ALWAYS_INLINE add(Data& data, const IColumn& column, size_t row_num) { | 95 | | if constexpr (is_string_type(T) || is_varbinary(T)) { | 96 | | StringRef value = column.get_data_at(row_num); | 97 | | data.set.insert(Data::get_key(value)); | 98 | | } else if constexpr (T == TYPE_ARRAY) { | 99 | | data.set.insert(Data::get_key(column, row_num)); | 100 | 15 | } else { | 101 | 15 | data.set.insert(assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&, | 102 | 15 | TypeCheckOnRelease::DISABLE>(column) | 103 | 15 | .get_data()[row_num]); | 104 | 15 | } | 105 | 15 | } |
_ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS2_42EEEE3addERS4_RKNS_7IColumnEm Line | Count | Source | 94 | 6 | static void ALWAYS_INLINE add(Data& data, const IColumn& column, size_t row_num) { | 95 | | if constexpr (is_string_type(T) || is_varbinary(T)) { | 96 | | StringRef value = column.get_data_at(row_num); | 97 | | data.set.insert(Data::get_key(value)); | 98 | | } else if constexpr (T == TYPE_ARRAY) { | 99 | | data.set.insert(Data::get_key(column, row_num)); | 100 | 6 | } else { | 101 | 6 | data.set.insert(assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&, | 102 | 6 | TypeCheckOnRelease::DISABLE>(column) | 103 | 6 | .get_data()[row_num]); | 104 | 6 | } | 105 | 6 | } |
Unexecuted instantiation: _ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS2_41EEEE3addERS4_RKNS_7IColumnEm Unexecuted instantiation: _ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE3ENS_38AggregateFunctionUniqDistributeKeyDataILS2_3EEEE3addERS4_RKNS_7IColumnEm Unexecuted instantiation: _ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE4ENS_38AggregateFunctionUniqDistributeKeyDataILS2_4EEEE3addERS4_RKNS_7IColumnEm Unexecuted instantiation: _ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE5ENS_38AggregateFunctionUniqDistributeKeyDataILS2_5EEEE3addERS4_RKNS_7IColumnEm Unexecuted instantiation: _ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE6ENS_38AggregateFunctionUniqDistributeKeyDataILS2_6EEEE3addERS4_RKNS_7IColumnEm Unexecuted instantiation: _ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE7ENS_38AggregateFunctionUniqDistributeKeyDataILS2_7EEEE3addERS4_RKNS_7IColumnEm Unexecuted instantiation: _ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE28ENS_38AggregateFunctionUniqDistributeKeyDataILS2_28EEEE3addERS4_RKNS_7IColumnEm Unexecuted instantiation: _ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE29ENS_38AggregateFunctionUniqDistributeKeyDataILS2_29EEEE3addERS4_RKNS_7IColumnEm Unexecuted instantiation: _ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE30ENS_38AggregateFunctionUniqDistributeKeyDataILS2_30EEEE3addERS4_RKNS_7IColumnEm Unexecuted instantiation: _ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE35ENS_38AggregateFunctionUniqDistributeKeyDataILS2_35EEEE3addERS4_RKNS_7IColumnEm Unexecuted instantiation: _ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE10ENS_38AggregateFunctionUniqDistributeKeyDataILS2_10EEEE3addERS4_RKNS_7IColumnEm |
106 | | }; |
107 | | |
108 | | } // namespace detail |
109 | | |
110 | | /// Calculates the number of different values approximately or exactly. |
111 | | template <PrimitiveType T, typename Data> |
112 | | class AggregateFunctionUniq final |
113 | | : public IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>, |
114 | | VarargsExpression, |
115 | | NotNullableAggregateFunction { |
116 | | public: |
117 | | using KeyType = std::conditional_t< |
118 | | is_string_type(T) || is_varbinary(T), UInt128, |
119 | | std::conditional_t<T == TYPE_ARRAY, UInt64, typename PrimitiveTypeTraits<T>::CppType>>; |
120 | | AggregateFunctionUniq(const DataTypes& argument_types_) |
121 | 1.32k | : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {}_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE2ENS_30AggregateFunctionUniqExactDataILS1_2EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE Line | Count | Source | 121 | 2 | : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {} |
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE3ENS_30AggregateFunctionUniqExactDataILS1_3EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE Line | Count | Source | 121 | 10 | : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {} |
Unexecuted instantiation: _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE4ENS_30AggregateFunctionUniqExactDataILS1_4EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE5ENS_30AggregateFunctionUniqExactDataILS1_5EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE Line | Count | Source | 121 | 587 | : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {} |
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE6ENS_30AggregateFunctionUniqExactDataILS1_6EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE Line | Count | Source | 121 | 58 | : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {} |
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE7ENS_30AggregateFunctionUniqExactDataILS1_7EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE Line | Count | Source | 121 | 2 | : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {} |
Unexecuted instantiation: _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE28ENS_30AggregateFunctionUniqExactDataILS1_28EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE29ENS_30AggregateFunctionUniqExactDataILS1_29EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE Line | Count | Source | 121 | 12 | : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {} |
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE30ENS_30AggregateFunctionUniqExactDataILS1_30EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE Line | Count | Source | 121 | 1 | : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {} |
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE35ENS_30AggregateFunctionUniqExactDataILS1_35EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE Line | Count | Source | 121 | 13 | : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {} |
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE10ENS_30AggregateFunctionUniqExactDataILS1_10EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE Line | Count | Source | 121 | 598 | : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {} |
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE17ENS_30AggregateFunctionUniqExactDataILS1_17EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE Line | Count | Source | 121 | 4 | : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {} |
Unexecuted instantiation: _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE8ENS_30AggregateFunctionUniqExactDataILS1_8EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE Unexecuted instantiation: _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE9ENS_30AggregateFunctionUniqExactDataILS1_9EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE25ENS_30AggregateFunctionUniqExactDataILS1_25EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE Line | Count | Source | 121 | 10 | : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {} |
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE26ENS_30AggregateFunctionUniqExactDataILS1_26EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE Line | Count | Source | 121 | 2 | : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {} |
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS1_42EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE Line | Count | Source | 121 | 8 | : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {} |
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS1_41EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE Line | Count | Source | 121 | 16 | : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {} |
|
122 | | |
123 | 39 | String get_name() const override { return Data::get_name(); }Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE2ENS_30AggregateFunctionUniqExactDataILS1_2EEEE8get_nameB5cxx11Ev Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE3ENS_30AggregateFunctionUniqExactDataILS1_3EEEE8get_nameB5cxx11Ev Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE4ENS_30AggregateFunctionUniqExactDataILS1_4EEEE8get_nameB5cxx11Ev _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE5ENS_30AggregateFunctionUniqExactDataILS1_5EEEE8get_nameB5cxx11Ev Line | Count | Source | 123 | 26 | String get_name() const override { return Data::get_name(); } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE6ENS_30AggregateFunctionUniqExactDataILS1_6EEEE8get_nameB5cxx11Ev Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE7ENS_30AggregateFunctionUniqExactDataILS1_7EEEE8get_nameB5cxx11Ev Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE28ENS_30AggregateFunctionUniqExactDataILS1_28EEEE8get_nameB5cxx11Ev Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE29ENS_30AggregateFunctionUniqExactDataILS1_29EEEE8get_nameB5cxx11Ev _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE30ENS_30AggregateFunctionUniqExactDataILS1_30EEEE8get_nameB5cxx11Ev Line | Count | Source | 123 | 10 | String get_name() const override { return Data::get_name(); } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE35ENS_30AggregateFunctionUniqExactDataILS1_35EEEE8get_nameB5cxx11Ev _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE10ENS_30AggregateFunctionUniqExactDataILS1_10EEEE8get_nameB5cxx11Ev Line | Count | Source | 123 | 3 | String get_name() const override { return Data::get_name(); } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE17ENS_30AggregateFunctionUniqExactDataILS1_17EEEE8get_nameB5cxx11Ev Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE8ENS_30AggregateFunctionUniqExactDataILS1_8EEEE8get_nameB5cxx11Ev Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE9ENS_30AggregateFunctionUniqExactDataILS1_9EEEE8get_nameB5cxx11Ev Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE25ENS_30AggregateFunctionUniqExactDataILS1_25EEEE8get_nameB5cxx11Ev Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE26ENS_30AggregateFunctionUniqExactDataILS1_26EEEE8get_nameB5cxx11Ev Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS1_42EEEE8get_nameB5cxx11Ev Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS1_41EEEE8get_nameB5cxx11Ev |
124 | | |
125 | 1.61k | DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); }_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE2ENS_30AggregateFunctionUniqExactDataILS1_2EEEE15get_return_typeEv Line | Count | Source | 125 | 3 | DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE3ENS_30AggregateFunctionUniqExactDataILS1_3EEEE15get_return_typeEv Line | Count | Source | 125 | 24 | DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE4ENS_30AggregateFunctionUniqExactDataILS1_4EEEE15get_return_typeEv _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE5ENS_30AggregateFunctionUniqExactDataILS1_5EEEE15get_return_typeEv Line | Count | Source | 125 | 771 | DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE6ENS_30AggregateFunctionUniqExactDataILS1_6EEEE15get_return_typeEv Line | Count | Source | 125 | 159 | DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE7ENS_30AggregateFunctionUniqExactDataILS1_7EEEE15get_return_typeEv Line | Count | Source | 125 | 16 | DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE28ENS_30AggregateFunctionUniqExactDataILS1_28EEEE15get_return_typeEv _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE29ENS_30AggregateFunctionUniqExactDataILS1_29EEEE15get_return_typeEv Line | Count | Source | 125 | 18 | DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE30ENS_30AggregateFunctionUniqExactDataILS1_30EEEE15get_return_typeEv Line | Count | Source | 125 | 11 | DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE35ENS_30AggregateFunctionUniqExactDataILS1_35EEEE15get_return_typeEv Line | Count | Source | 125 | 21 | DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE10ENS_30AggregateFunctionUniqExactDataILS1_10EEEE15get_return_typeEv Line | Count | Source | 125 | 515 | DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE17ENS_30AggregateFunctionUniqExactDataILS1_17EEEE15get_return_typeEv Line | Count | Source | 125 | 8 | DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE8ENS_30AggregateFunctionUniqExactDataILS1_8EEEE15get_return_typeEv Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE9ENS_30AggregateFunctionUniqExactDataILS1_9EEEE15get_return_typeEv _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE25ENS_30AggregateFunctionUniqExactDataILS1_25EEEE15get_return_typeEv Line | Count | Source | 125 | 17 | DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE26ENS_30AggregateFunctionUniqExactDataILS1_26EEEE15get_return_typeEv Line | Count | Source | 125 | 4 | DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS1_42EEEE15get_return_typeEv Line | Count | Source | 125 | 12 | DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS1_41EEEE15get_return_typeEv Line | Count | Source | 125 | 32 | DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); } |
|
126 | | |
127 | 34 | void reset(AggregateDataPtr __restrict place) const override { this->data(place).reset(); }Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE2ENS_30AggregateFunctionUniqExactDataILS1_2EEEE5resetEPc Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE3ENS_30AggregateFunctionUniqExactDataILS1_3EEEE5resetEPc Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE4ENS_30AggregateFunctionUniqExactDataILS1_4EEEE5resetEPc _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE5ENS_30AggregateFunctionUniqExactDataILS1_5EEEE5resetEPc Line | Count | Source | 127 | 31 | void reset(AggregateDataPtr __restrict place) const override { this->data(place).reset(); } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE6ENS_30AggregateFunctionUniqExactDataILS1_6EEEE5resetEPc Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE7ENS_30AggregateFunctionUniqExactDataILS1_7EEEE5resetEPc Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE28ENS_30AggregateFunctionUniqExactDataILS1_28EEEE5resetEPc Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE29ENS_30AggregateFunctionUniqExactDataILS1_29EEEE5resetEPc _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE30ENS_30AggregateFunctionUniqExactDataILS1_30EEEE5resetEPc Line | Count | Source | 127 | 3 | void reset(AggregateDataPtr __restrict place) const override { this->data(place).reset(); } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE35ENS_30AggregateFunctionUniqExactDataILS1_35EEEE5resetEPc Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE10ENS_30AggregateFunctionUniqExactDataILS1_10EEEE5resetEPc Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE17ENS_30AggregateFunctionUniqExactDataILS1_17EEEE5resetEPc Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE8ENS_30AggregateFunctionUniqExactDataILS1_8EEEE5resetEPc Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE9ENS_30AggregateFunctionUniqExactDataILS1_9EEEE5resetEPc Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE25ENS_30AggregateFunctionUniqExactDataILS1_25EEEE5resetEPc Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE26ENS_30AggregateFunctionUniqExactDataILS1_26EEEE5resetEPc Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS1_42EEEE5resetEPc Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS1_41EEEE5resetEPc |
128 | | |
129 | | void add(AggregateDataPtr __restrict place, const IColumn** columns, ssize_t row_num, |
130 | 724 | Arena&) const override { |
131 | 724 | detail::OneAdder<T, Data>::add(this->data(place), *columns[0], row_num); |
132 | 724 | } _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE2ENS_30AggregateFunctionUniqExactDataILS1_2EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE Line | Count | Source | 130 | 15 | Arena&) const override { | 131 | 15 | detail::OneAdder<T, Data>::add(this->data(place), *columns[0], row_num); | 132 | 15 | } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE3ENS_30AggregateFunctionUniqExactDataILS1_3EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE4ENS_30AggregateFunctionUniqExactDataILS1_4EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE5ENS_30AggregateFunctionUniqExactDataILS1_5EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE Line | Count | Source | 130 | 176 | Arena&) const override { | 131 | 176 | detail::OneAdder<T, Data>::add(this->data(place), *columns[0], row_num); | 132 | 176 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE6ENS_30AggregateFunctionUniqExactDataILS1_6EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE Line | Count | Source | 130 | 15 | Arena&) const override { | 131 | 15 | detail::OneAdder<T, Data>::add(this->data(place), *columns[0], row_num); | 132 | 15 | } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE7ENS_30AggregateFunctionUniqExactDataILS1_7EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE28ENS_30AggregateFunctionUniqExactDataILS1_28EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE29ENS_30AggregateFunctionUniqExactDataILS1_29EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE Line | Count | Source | 130 | 4 | Arena&) const override { | 131 | 4 | detail::OneAdder<T, Data>::add(this->data(place), *columns[0], row_num); | 132 | 4 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE30ENS_30AggregateFunctionUniqExactDataILS1_30EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE Line | Count | Source | 130 | 17 | Arena&) const override { | 131 | 17 | detail::OneAdder<T, Data>::add(this->data(place), *columns[0], row_num); | 132 | 17 | } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE35ENS_30AggregateFunctionUniqExactDataILS1_35EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE10ENS_30AggregateFunctionUniqExactDataILS1_10EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE Line | Count | Source | 130 | 456 | Arena&) const override { | 131 | 456 | detail::OneAdder<T, Data>::add(this->data(place), *columns[0], row_num); | 132 | 456 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE17ENS_30AggregateFunctionUniqExactDataILS1_17EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE Line | Count | Source | 130 | 14 | Arena&) const override { | 131 | 14 | detail::OneAdder<T, Data>::add(this->data(place), *columns[0], row_num); | 132 | 14 | } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE8ENS_30AggregateFunctionUniqExactDataILS1_8EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE9ENS_30AggregateFunctionUniqExactDataILS1_9EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE25ENS_30AggregateFunctionUniqExactDataILS1_25EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE Line | Count | Source | 130 | 6 | Arena&) const override { | 131 | 6 | detail::OneAdder<T, Data>::add(this->data(place), *columns[0], row_num); | 132 | 6 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE26ENS_30AggregateFunctionUniqExactDataILS1_26EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE Line | Count | Source | 130 | 15 | Arena&) const override { | 131 | 15 | detail::OneAdder<T, Data>::add(this->data(place), *columns[0], row_num); | 132 | 15 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS1_42EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE Line | Count | Source | 130 | 6 | Arena&) const override { | 131 | 6 | detail::OneAdder<T, Data>::add(this->data(place), *columns[0], row_num); | 132 | 6 | } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS1_41EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE |
133 | | |
134 | | static ALWAYS_INLINE const KeyType* get_keys(std::vector<KeyType>& keys_container, |
135 | 1.14k | const IColumn& column, size_t batch_size) { |
136 | 1.14k | if constexpr (is_string_type(T) || is_varbinary(T)) { |
137 | 92 | keys_container.resize(batch_size); |
138 | 403 | for (size_t i = 0; i != batch_size; ++i) { |
139 | 311 | StringRef value = column.get_data_at(i); |
140 | 311 | keys_container[i] = Data::get_key(value); |
141 | 311 | } |
142 | 92 | return keys_container.data(); |
143 | 92 | } else if constexpr (T == TYPE_ARRAY) { |
144 | 0 | keys_container.resize(batch_size); |
145 | 0 | for (size_t i = 0; i != batch_size; ++i) { |
146 | 0 | keys_container[i] = Data::get_key(column, i); |
147 | 0 | } |
148 | 0 | return keys_container.data(); |
149 | 1.05k | } else { |
150 | 1.05k | return assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(column) |
151 | 1.05k | .get_data() |
152 | 1.05k | .data(); |
153 | 1.05k | } |
154 | 1.14k | } Unexecuted instantiation: _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE2ENS_30AggregateFunctionUniqExactDataILS1_2EEEE8get_keysERSt6vectorIhSaIhEERKNS_7IColumnEm _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE3ENS_30AggregateFunctionUniqExactDataILS1_3EEEE8get_keysERSt6vectorIaSaIaEERKNS_7IColumnEm Line | Count | Source | 135 | 16 | const IColumn& column, size_t batch_size) { | 136 | | if constexpr (is_string_type(T) || is_varbinary(T)) { | 137 | | keys_container.resize(batch_size); | 138 | | for (size_t i = 0; i != batch_size; ++i) { | 139 | | StringRef value = column.get_data_at(i); | 140 | | keys_container[i] = Data::get_key(value); | 141 | | } | 142 | | return keys_container.data(); | 143 | | } else if constexpr (T == TYPE_ARRAY) { | 144 | | keys_container.resize(batch_size); | 145 | | for (size_t i = 0; i != batch_size; ++i) { | 146 | | keys_container[i] = Data::get_key(column, i); | 147 | | } | 148 | | return keys_container.data(); | 149 | 16 | } else { | 150 | 16 | return assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(column) | 151 | 16 | .get_data() | 152 | 16 | .data(); | 153 | 16 | } | 154 | 16 | } |
Unexecuted instantiation: _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE4ENS_30AggregateFunctionUniqExactDataILS1_4EEEE8get_keysERSt6vectorIsSaIsEERKNS_7IColumnEm _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE5ENS_30AggregateFunctionUniqExactDataILS1_5EEEE8get_keysERSt6vectorIiSaIiEERKNS_7IColumnEm Line | Count | Source | 135 | 687 | const IColumn& column, size_t batch_size) { | 136 | | if constexpr (is_string_type(T) || is_varbinary(T)) { | 137 | | keys_container.resize(batch_size); | 138 | | for (size_t i = 0; i != batch_size; ++i) { | 139 | | StringRef value = column.get_data_at(i); | 140 | | keys_container[i] = Data::get_key(value); | 141 | | } | 142 | | return keys_container.data(); | 143 | | } else if constexpr (T == TYPE_ARRAY) { | 144 | | keys_container.resize(batch_size); | 145 | | for (size_t i = 0; i != batch_size; ++i) { | 146 | | keys_container[i] = Data::get_key(column, i); | 147 | | } | 148 | | return keys_container.data(); | 149 | 687 | } else { | 150 | 687 | return assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(column) | 151 | 687 | .get_data() | 152 | 687 | .data(); | 153 | 687 | } | 154 | 687 | } |
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE6ENS_30AggregateFunctionUniqExactDataILS1_6EEEE8get_keysERSt6vectorIlSaIlEERKNS_7IColumnEm Line | Count | Source | 135 | 146 | const IColumn& column, size_t batch_size) { | 136 | | if constexpr (is_string_type(T) || is_varbinary(T)) { | 137 | | keys_container.resize(batch_size); | 138 | | for (size_t i = 0; i != batch_size; ++i) { | 139 | | StringRef value = column.get_data_at(i); | 140 | | keys_container[i] = Data::get_key(value); | 141 | | } | 142 | | return keys_container.data(); | 143 | | } else if constexpr (T == TYPE_ARRAY) { | 144 | | keys_container.resize(batch_size); | 145 | | for (size_t i = 0; i != batch_size; ++i) { | 146 | | keys_container[i] = Data::get_key(column, i); | 147 | | } | 148 | | return keys_container.data(); | 149 | 146 | } else { | 150 | 146 | return assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(column) | 151 | 146 | .get_data() | 152 | 146 | .data(); | 153 | 146 | } | 154 | 146 | } |
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE7ENS_30AggregateFunctionUniqExactDataILS1_7EEEE8get_keysERSt6vectorInSaInEERKNS_7IColumnEm Line | Count | Source | 135 | 2 | const IColumn& column, size_t batch_size) { | 136 | | if constexpr (is_string_type(T) || is_varbinary(T)) { | 137 | | keys_container.resize(batch_size); | 138 | | for (size_t i = 0; i != batch_size; ++i) { | 139 | | StringRef value = column.get_data_at(i); | 140 | | keys_container[i] = Data::get_key(value); | 141 | | } | 142 | | return keys_container.data(); | 143 | | } else if constexpr (T == TYPE_ARRAY) { | 144 | | keys_container.resize(batch_size); | 145 | | for (size_t i = 0; i != batch_size; ++i) { | 146 | | keys_container[i] = Data::get_key(column, i); | 147 | | } | 148 | | return keys_container.data(); | 149 | 2 | } else { | 150 | 2 | return assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(column) | 151 | 2 | .get_data() | 152 | 2 | .data(); | 153 | 2 | } | 154 | 2 | } |
Unexecuted instantiation: _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE28ENS_30AggregateFunctionUniqExactDataILS1_28EEEE8get_keysERSt6vectorINS_7DecimalIiEESaIS7_EERKNS_7IColumnEm _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE29ENS_30AggregateFunctionUniqExactDataILS1_29EEEE8get_keysERSt6vectorINS_7DecimalIlEESaIS7_EERKNS_7IColumnEm Line | Count | Source | 135 | 5 | const IColumn& column, size_t batch_size) { | 136 | | if constexpr (is_string_type(T) || is_varbinary(T)) { | 137 | | keys_container.resize(batch_size); | 138 | | for (size_t i = 0; i != batch_size; ++i) { | 139 | | StringRef value = column.get_data_at(i); | 140 | | keys_container[i] = Data::get_key(value); | 141 | | } | 142 | | return keys_container.data(); | 143 | | } else if constexpr (T == TYPE_ARRAY) { | 144 | | keys_container.resize(batch_size); | 145 | | for (size_t i = 0; i != batch_size; ++i) { | 146 | | keys_container[i] = Data::get_key(column, i); | 147 | | } | 148 | | return keys_container.data(); | 149 | 5 | } else { | 150 | 5 | return assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(column) | 151 | 5 | .get_data() | 152 | 5 | .data(); | 153 | 5 | } | 154 | 5 | } |
Unexecuted instantiation: _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE30ENS_30AggregateFunctionUniqExactDataILS1_30EEEE8get_keysERSt6vectorINS_12Decimal128V3ESaIS6_EERKNS_7IColumnEm _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE35ENS_30AggregateFunctionUniqExactDataILS1_35EEEE8get_keysERSt6vectorINS_7DecimalIN4wide7integerILm256EiEEEESaISA_EERKNS_7IColumnEm Line | Count | Source | 135 | 11 | const IColumn& column, size_t batch_size) { | 136 | | if constexpr (is_string_type(T) || is_varbinary(T)) { | 137 | | keys_container.resize(batch_size); | 138 | | for (size_t i = 0; i != batch_size; ++i) { | 139 | | StringRef value = column.get_data_at(i); | 140 | | keys_container[i] = Data::get_key(value); | 141 | | } | 142 | | return keys_container.data(); | 143 | | } else if constexpr (T == TYPE_ARRAY) { | 144 | | keys_container.resize(batch_size); | 145 | | for (size_t i = 0; i != batch_size; ++i) { | 146 | | keys_container[i] = Data::get_key(column, i); | 147 | | } | 148 | | return keys_container.data(); | 149 | 11 | } else { | 150 | 11 | return assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(column) | 151 | 11 | .get_data() | 152 | 11 | .data(); | 153 | 11 | } | 154 | 11 | } |
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE10ENS_30AggregateFunctionUniqExactDataILS1_10EEEE8get_keysERSt6vectorIN4wide7integerILm128EjEESaIS8_EERKNS_7IColumnEm Line | Count | Source | 135 | 68 | const IColumn& column, size_t batch_size) { | 136 | 68 | if constexpr (is_string_type(T) || is_varbinary(T)) { | 137 | 68 | keys_container.resize(batch_size); | 138 | 355 | for (size_t i = 0; i != batch_size; ++i) { | 139 | 287 | StringRef value = column.get_data_at(i); | 140 | 287 | keys_container[i] = Data::get_key(value); | 141 | 287 | } | 142 | 68 | return keys_container.data(); | 143 | | } else if constexpr (T == TYPE_ARRAY) { | 144 | | keys_container.resize(batch_size); | 145 | | for (size_t i = 0; i != batch_size; ++i) { | 146 | | keys_container[i] = Data::get_key(column, i); | 147 | | } | 148 | | return keys_container.data(); | 149 | | } else { | 150 | | return assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(column) | 151 | | .get_data() | 152 | | .data(); | 153 | | } | 154 | 68 | } |
Unexecuted instantiation: _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE17ENS_30AggregateFunctionUniqExactDataILS1_17EEEE8get_keysERSt6vectorImSaImEERKNS_7IColumnEm Unexecuted instantiation: _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE8ENS_30AggregateFunctionUniqExactDataILS1_8EEEE8get_keysERSt6vectorIfSaIfEERKNS_7IColumnEm Unexecuted instantiation: _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE9ENS_30AggregateFunctionUniqExactDataILS1_9EEEE8get_keysERSt6vectorIdSaIdEERKNS_7IColumnEm _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE25ENS_30AggregateFunctionUniqExactDataILS1_25EEEE8get_keysERSt6vectorINS_11DateV2ValueINS_15DateV2ValueTypeEEESaIS8_EERKNS_7IColumnEm Line | Count | Source | 135 | 148 | const IColumn& column, size_t batch_size) { | 136 | | if constexpr (is_string_type(T) || is_varbinary(T)) { | 137 | | keys_container.resize(batch_size); | 138 | | for (size_t i = 0; i != batch_size; ++i) { | 139 | | StringRef value = column.get_data_at(i); | 140 | | keys_container[i] = Data::get_key(value); | 141 | | } | 142 | | return keys_container.data(); | 143 | | } else if constexpr (T == TYPE_ARRAY) { | 144 | | keys_container.resize(batch_size); | 145 | | for (size_t i = 0; i != batch_size; ++i) { | 146 | | keys_container[i] = Data::get_key(column, i); | 147 | | } | 148 | | return keys_container.data(); | 149 | 148 | } else { | 150 | 148 | return assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(column) | 151 | 148 | .get_data() | 152 | 148 | .data(); | 153 | 148 | } | 154 | 148 | } |
Unexecuted instantiation: _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE26ENS_30AggregateFunctionUniqExactDataILS1_26EEEE8get_keysERSt6vectorINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEESaIS8_EERKNS_7IColumnEm _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS1_42EEEE8get_keysERSt6vectorINS_16TimestampTzValueESaIS6_EERKNS_7IColumnEm Line | Count | Source | 135 | 36 | const IColumn& column, size_t batch_size) { | 136 | | if constexpr (is_string_type(T) || is_varbinary(T)) { | 137 | | keys_container.resize(batch_size); | 138 | | for (size_t i = 0; i != batch_size; ++i) { | 139 | | StringRef value = column.get_data_at(i); | 140 | | keys_container[i] = Data::get_key(value); | 141 | | } | 142 | | return keys_container.data(); | 143 | | } else if constexpr (T == TYPE_ARRAY) { | 144 | | keys_container.resize(batch_size); | 145 | | for (size_t i = 0; i != batch_size; ++i) { | 146 | | keys_container[i] = Data::get_key(column, i); | 147 | | } | 148 | | return keys_container.data(); | 149 | 36 | } else { | 150 | 36 | return assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(column) | 151 | 36 | .get_data() | 152 | 36 | .data(); | 153 | 36 | } | 154 | 36 | } |
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS1_41EEEE8get_keysERSt6vectorIN4wide7integerILm128EjEESaIS8_EERKNS_7IColumnEm Line | Count | Source | 135 | 24 | const IColumn& column, size_t batch_size) { | 136 | 24 | if constexpr (is_string_type(T) || is_varbinary(T)) { | 137 | 24 | keys_container.resize(batch_size); | 138 | 48 | for (size_t i = 0; i != batch_size; ++i) { | 139 | 24 | StringRef value = column.get_data_at(i); | 140 | 24 | keys_container[i] = Data::get_key(value); | 141 | 24 | } | 142 | 24 | return keys_container.data(); | 143 | | } else if constexpr (T == TYPE_ARRAY) { | 144 | | keys_container.resize(batch_size); | 145 | | for (size_t i = 0; i != batch_size; ++i) { | 146 | | keys_container[i] = Data::get_key(column, i); | 147 | | } | 148 | | return keys_container.data(); | 149 | | } else { | 150 | | return assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(column) | 151 | | .get_data() | 152 | | .data(); | 153 | | } | 154 | 24 | } |
|
155 | | |
156 | | void add_batch(size_t batch_size, AggregateDataPtr* places, size_t place_offset, |
157 | 883 | const IColumn** columns, Arena&, bool /*agg_many*/) const override { |
158 | 883 | std::vector<KeyType> keys_container; |
159 | 883 | const KeyType* keys = get_keys(keys_container, *columns[0], batch_size); |
160 | | |
161 | 883 | std::vector<typename Data::Set*> array_of_data_set(batch_size); |
162 | | |
163 | 40.4k | for (size_t i = 0; i != batch_size; ++i) { |
164 | 39.5k | array_of_data_set[i] = &(this->data(places[i] + place_offset).set); |
165 | 39.5k | } |
166 | | |
167 | | // Precompute hash values to avoid double computation in prefetch + insert |
168 | 883 | std::vector<size_t> hash_values(batch_size); |
169 | 40.5k | for (size_t i = 0; i < batch_size; ++i) { |
170 | 39.6k | hash_values[i] = array_of_data_set[i]->hash(keys[i]); |
171 | 39.6k | } |
172 | | |
173 | 40.5k | for (size_t i = 0; i != batch_size; ++i) { |
174 | 39.6k | if (i + HASH_MAP_PREFETCH_DIST < batch_size) { |
175 | 34.7k | array_of_data_set[i + HASH_MAP_PREFETCH_DIST]->prefetch_hash( |
176 | 34.7k | hash_values[i + HASH_MAP_PREFETCH_DIST]); |
177 | 34.7k | } |
178 | | |
179 | 39.6k | array_of_data_set[i]->emplace_with_hash(hash_values[i], keys[i]); |
180 | 39.6k | } |
181 | 883 | } Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE2ENS_30AggregateFunctionUniqExactDataILS1_2EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE3ENS_30AggregateFunctionUniqExactDataILS1_3EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb Line | Count | Source | 157 | 4 | const IColumn** columns, Arena&, bool /*agg_many*/) const override { | 158 | 4 | std::vector<KeyType> keys_container; | 159 | 4 | const KeyType* keys = get_keys(keys_container, *columns[0], batch_size); | 160 | | | 161 | 4 | std::vector<typename Data::Set*> array_of_data_set(batch_size); | 162 | | | 163 | 10 | for (size_t i = 0; i != batch_size; ++i) { | 164 | 6 | array_of_data_set[i] = &(this->data(places[i] + place_offset).set); | 165 | 6 | } | 166 | | | 167 | | // Precompute hash values to avoid double computation in prefetch + insert | 168 | 4 | std::vector<size_t> hash_values(batch_size); | 169 | 10 | for (size_t i = 0; i < batch_size; ++i) { | 170 | 6 | hash_values[i] = array_of_data_set[i]->hash(keys[i]); | 171 | 6 | } | 172 | | | 173 | 10 | for (size_t i = 0; i != batch_size; ++i) { | 174 | 6 | if (i + HASH_MAP_PREFETCH_DIST < batch_size) { | 175 | 0 | array_of_data_set[i + HASH_MAP_PREFETCH_DIST]->prefetch_hash( | 176 | 0 | hash_values[i + HASH_MAP_PREFETCH_DIST]); | 177 | 0 | } | 178 | | | 179 | 6 | array_of_data_set[i]->emplace_with_hash(hash_values[i], keys[i]); | 180 | 6 | } | 181 | 4 | } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE4ENS_30AggregateFunctionUniqExactDataILS1_4EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE5ENS_30AggregateFunctionUniqExactDataILS1_5EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb Line | Count | Source | 157 | 516 | const IColumn** columns, Arena&, bool /*agg_many*/) const override { | 158 | 516 | std::vector<KeyType> keys_container; | 159 | 516 | const KeyType* keys = get_keys(keys_container, *columns[0], batch_size); | 160 | | | 161 | 516 | std::vector<typename Data::Set*> array_of_data_set(batch_size); | 162 | | | 163 | 38.3k | for (size_t i = 0; i != batch_size; ++i) { | 164 | 37.8k | array_of_data_set[i] = &(this->data(places[i] + place_offset).set); | 165 | 37.8k | } | 166 | | | 167 | | // Precompute hash values to avoid double computation in prefetch + insert | 168 | 516 | std::vector<size_t> hash_values(batch_size); | 169 | 38.4k | for (size_t i = 0; i < batch_size; ++i) { | 170 | 37.9k | hash_values[i] = array_of_data_set[i]->hash(keys[i]); | 171 | 37.9k | } | 172 | | | 173 | 38.4k | for (size_t i = 0; i != batch_size; ++i) { | 174 | 37.9k | if (i + HASH_MAP_PREFETCH_DIST < batch_size) { | 175 | 34.5k | array_of_data_set[i + HASH_MAP_PREFETCH_DIST]->prefetch_hash( | 176 | 34.5k | hash_values[i + HASH_MAP_PREFETCH_DIST]); | 177 | 34.5k | } | 178 | | | 179 | 37.9k | array_of_data_set[i]->emplace_with_hash(hash_values[i], keys[i]); | 180 | 37.9k | } | 181 | 516 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE6ENS_30AggregateFunctionUniqExactDataILS1_6EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb Line | Count | Source | 157 | 95 | const IColumn** columns, Arena&, bool /*agg_many*/) const override { | 158 | 95 | std::vector<KeyType> keys_container; | 159 | 95 | const KeyType* keys = get_keys(keys_container, *columns[0], batch_size); | 160 | | | 161 | 95 | std::vector<typename Data::Set*> array_of_data_set(batch_size); | 162 | | | 163 | 282 | for (size_t i = 0; i != batch_size; ++i) { | 164 | 187 | array_of_data_set[i] = &(this->data(places[i] + place_offset).set); | 165 | 187 | } | 166 | | | 167 | | // Precompute hash values to avoid double computation in prefetch + insert | 168 | 95 | std::vector<size_t> hash_values(batch_size); | 169 | 282 | for (size_t i = 0; i < batch_size; ++i) { | 170 | 187 | hash_values[i] = array_of_data_set[i]->hash(keys[i]); | 171 | 187 | } | 172 | | | 173 | 282 | for (size_t i = 0; i != batch_size; ++i) { | 174 | 187 | if (i + HASH_MAP_PREFETCH_DIST < batch_size) { | 175 | 0 | array_of_data_set[i + HASH_MAP_PREFETCH_DIST]->prefetch_hash( | 176 | 0 | hash_values[i + HASH_MAP_PREFETCH_DIST]); | 177 | 0 | } | 178 | | | 179 | 187 | array_of_data_set[i]->emplace_with_hash(hash_values[i], keys[i]); | 180 | 187 | } | 181 | 95 | } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE7ENS_30AggregateFunctionUniqExactDataILS1_7EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE28ENS_30AggregateFunctionUniqExactDataILS1_28EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE29ENS_30AggregateFunctionUniqExactDataILS1_29EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb Line | Count | Source | 157 | 5 | const IColumn** columns, Arena&, bool /*agg_many*/) const override { | 158 | 5 | std::vector<KeyType> keys_container; | 159 | 5 | const KeyType* keys = get_keys(keys_container, *columns[0], batch_size); | 160 | | | 161 | 5 | std::vector<typename Data::Set*> array_of_data_set(batch_size); | 162 | | | 163 | 35 | for (size_t i = 0; i != batch_size; ++i) { | 164 | 30 | array_of_data_set[i] = &(this->data(places[i] + place_offset).set); | 165 | 30 | } | 166 | | | 167 | | // Precompute hash values to avoid double computation in prefetch + insert | 168 | 5 | std::vector<size_t> hash_values(batch_size); | 169 | 35 | for (size_t i = 0; i < batch_size; ++i) { | 170 | 30 | hash_values[i] = array_of_data_set[i]->hash(keys[i]); | 171 | 30 | } | 172 | | | 173 | 35 | for (size_t i = 0; i != batch_size; ++i) { | 174 | 30 | if (i + HASH_MAP_PREFETCH_DIST < batch_size) { | 175 | 0 | array_of_data_set[i + HASH_MAP_PREFETCH_DIST]->prefetch_hash( | 176 | 0 | hash_values[i + HASH_MAP_PREFETCH_DIST]); | 177 | 0 | } | 178 | | | 179 | 30 | array_of_data_set[i]->emplace_with_hash(hash_values[i], keys[i]); | 180 | 30 | } | 181 | 5 | } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE30ENS_30AggregateFunctionUniqExactDataILS1_30EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE35ENS_30AggregateFunctionUniqExactDataILS1_35EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb Line | Count | Source | 157 | 11 | const IColumn** columns, Arena&, bool /*agg_many*/) const override { | 158 | 11 | std::vector<KeyType> keys_container; | 159 | 11 | const KeyType* keys = get_keys(keys_container, *columns[0], batch_size); | 160 | | | 161 | 11 | std::vector<typename Data::Set*> array_of_data_set(batch_size); | 162 | | | 163 | 65 | for (size_t i = 0; i != batch_size; ++i) { | 164 | 54 | array_of_data_set[i] = &(this->data(places[i] + place_offset).set); | 165 | 54 | } | 166 | | | 167 | | // Precompute hash values to avoid double computation in prefetch + insert | 168 | 11 | std::vector<size_t> hash_values(batch_size); | 169 | 65 | for (size_t i = 0; i < batch_size; ++i) { | 170 | 54 | hash_values[i] = array_of_data_set[i]->hash(keys[i]); | 171 | 54 | } | 172 | | | 173 | 65 | for (size_t i = 0; i != batch_size; ++i) { | 174 | 54 | if (i + HASH_MAP_PREFETCH_DIST < batch_size) { | 175 | 0 | array_of_data_set[i + HASH_MAP_PREFETCH_DIST]->prefetch_hash( | 176 | 0 | hash_values[i + HASH_MAP_PREFETCH_DIST]); | 177 | 0 | } | 178 | | | 179 | 54 | array_of_data_set[i]->emplace_with_hash(hash_values[i], keys[i]); | 180 | 54 | } | 181 | 11 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE10ENS_30AggregateFunctionUniqExactDataILS1_10EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb Line | Count | Source | 157 | 68 | const IColumn** columns, Arena&, bool /*agg_many*/) const override { | 158 | 68 | std::vector<KeyType> keys_container; | 159 | 68 | const KeyType* keys = get_keys(keys_container, *columns[0], batch_size); | 160 | | | 161 | 68 | std::vector<typename Data::Set*> array_of_data_set(batch_size); | 162 | | | 163 | 355 | for (size_t i = 0; i != batch_size; ++i) { | 164 | 287 | array_of_data_set[i] = &(this->data(places[i] + place_offset).set); | 165 | 287 | } | 166 | | | 167 | | // Precompute hash values to avoid double computation in prefetch + insert | 168 | 68 | std::vector<size_t> hash_values(batch_size); | 169 | 355 | for (size_t i = 0; i < batch_size; ++i) { | 170 | 287 | hash_values[i] = array_of_data_set[i]->hash(keys[i]); | 171 | 287 | } | 172 | | | 173 | 355 | for (size_t i = 0; i != batch_size; ++i) { | 174 | 287 | if (i + HASH_MAP_PREFETCH_DIST < batch_size) { | 175 | 28 | array_of_data_set[i + HASH_MAP_PREFETCH_DIST]->prefetch_hash( | 176 | 28 | hash_values[i + HASH_MAP_PREFETCH_DIST]); | 177 | 28 | } | 178 | | | 179 | 287 | array_of_data_set[i]->emplace_with_hash(hash_values[i], keys[i]); | 180 | 287 | } | 181 | 68 | } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE17ENS_30AggregateFunctionUniqExactDataILS1_17EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE8ENS_30AggregateFunctionUniqExactDataILS1_8EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE9ENS_30AggregateFunctionUniqExactDataILS1_9EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE25ENS_30AggregateFunctionUniqExactDataILS1_25EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb Line | Count | Source | 157 | 148 | const IColumn** columns, Arena&, bool /*agg_many*/) const override { | 158 | 148 | std::vector<KeyType> keys_container; | 159 | 148 | const KeyType* keys = get_keys(keys_container, *columns[0], batch_size); | 160 | | | 161 | 148 | std::vector<typename Data::Set*> array_of_data_set(batch_size); | 162 | | | 163 | 1.20k | for (size_t i = 0; i != batch_size; ++i) { | 164 | 1.05k | array_of_data_set[i] = &(this->data(places[i] + place_offset).set); | 165 | 1.05k | } | 166 | | | 167 | | // Precompute hash values to avoid double computation in prefetch + insert | 168 | 148 | std::vector<size_t> hash_values(batch_size); | 169 | 1.20k | for (size_t i = 0; i < batch_size; ++i) { | 170 | 1.05k | hash_values[i] = array_of_data_set[i]->hash(keys[i]); | 171 | 1.05k | } | 172 | | | 173 | 1.20k | for (size_t i = 0; i != batch_size; ++i) { | 174 | 1.05k | if (i + HASH_MAP_PREFETCH_DIST < batch_size) { | 175 | 152 | array_of_data_set[i + HASH_MAP_PREFETCH_DIST]->prefetch_hash( | 176 | 152 | hash_values[i + HASH_MAP_PREFETCH_DIST]); | 177 | 152 | } | 178 | | | 179 | 1.05k | array_of_data_set[i]->emplace_with_hash(hash_values[i], keys[i]); | 180 | 1.05k | } | 181 | 148 | } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE26ENS_30AggregateFunctionUniqExactDataILS1_26EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS1_42EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb Line | Count | Source | 157 | 36 | const IColumn** columns, Arena&, bool /*agg_many*/) const override { | 158 | 36 | std::vector<KeyType> keys_container; | 159 | 36 | const KeyType* keys = get_keys(keys_container, *columns[0], batch_size); | 160 | | | 161 | 36 | std::vector<typename Data::Set*> array_of_data_set(batch_size); | 162 | | | 163 | 106 | for (size_t i = 0; i != batch_size; ++i) { | 164 | 70 | array_of_data_set[i] = &(this->data(places[i] + place_offset).set); | 165 | 70 | } | 166 | | | 167 | | // Precompute hash values to avoid double computation in prefetch + insert | 168 | 36 | std::vector<size_t> hash_values(batch_size); | 169 | 106 | for (size_t i = 0; i < batch_size; ++i) { | 170 | 70 | hash_values[i] = array_of_data_set[i]->hash(keys[i]); | 171 | 70 | } | 172 | | | 173 | 106 | for (size_t i = 0; i != batch_size; ++i) { | 174 | 70 | if (i + HASH_MAP_PREFETCH_DIST < batch_size) { | 175 | 0 | array_of_data_set[i + HASH_MAP_PREFETCH_DIST]->prefetch_hash( | 176 | 0 | hash_values[i + HASH_MAP_PREFETCH_DIST]); | 177 | 0 | } | 178 | | | 179 | 70 | array_of_data_set[i]->emplace_with_hash(hash_values[i], keys[i]); | 180 | 70 | } | 181 | 36 | } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS1_41EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb |
182 | | |
183 | | void merge(AggregateDataPtr __restrict place, ConstAggregateDataPtr rhs, |
184 | 81 | Arena&) const override { |
185 | 81 | auto& rhs_set = this->data(rhs).set; |
186 | 81 | if (rhs_set.size() == 0) return; |
187 | | |
188 | 81 | auto& set = this->data(place).set; |
189 | 81 | set.rehash(set.size() + rhs_set.size()); |
190 | | |
191 | 93 | for (auto elem : rhs_set) { |
192 | 93 | set.insert(elem); |
193 | 93 | } |
194 | 81 | } Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE2ENS_30AggregateFunctionUniqExactDataILS1_2EEEE5mergeEPcPKcRNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE3ENS_30AggregateFunctionUniqExactDataILS1_3EEEE5mergeEPcPKcRNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE4ENS_30AggregateFunctionUniqExactDataILS1_4EEEE5mergeEPcPKcRNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE5ENS_30AggregateFunctionUniqExactDataILS1_5EEEE5mergeEPcPKcRNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE6ENS_30AggregateFunctionUniqExactDataILS1_6EEEE5mergeEPcPKcRNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE7ENS_30AggregateFunctionUniqExactDataILS1_7EEEE5mergeEPcPKcRNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE28ENS_30AggregateFunctionUniqExactDataILS1_28EEEE5mergeEPcPKcRNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE29ENS_30AggregateFunctionUniqExactDataILS1_29EEEE5mergeEPcPKcRNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE30ENS_30AggregateFunctionUniqExactDataILS1_30EEEE5mergeEPcPKcRNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE35ENS_30AggregateFunctionUniqExactDataILS1_35EEEE5mergeEPcPKcRNS_5ArenaE _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE10ENS_30AggregateFunctionUniqExactDataILS1_10EEEE5mergeEPcPKcRNS_5ArenaE Line | Count | Source | 184 | 81 | Arena&) const override { | 185 | 81 | auto& rhs_set = this->data(rhs).set; | 186 | 81 | if (rhs_set.size() == 0) return; | 187 | | | 188 | 81 | auto& set = this->data(place).set; | 189 | 81 | set.rehash(set.size() + rhs_set.size()); | 190 | | | 191 | 93 | for (auto elem : rhs_set) { | 192 | 93 | set.insert(elem); | 193 | 93 | } | 194 | 81 | } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE17ENS_30AggregateFunctionUniqExactDataILS1_17EEEE5mergeEPcPKcRNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE8ENS_30AggregateFunctionUniqExactDataILS1_8EEEE5mergeEPcPKcRNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE9ENS_30AggregateFunctionUniqExactDataILS1_9EEEE5mergeEPcPKcRNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE25ENS_30AggregateFunctionUniqExactDataILS1_25EEEE5mergeEPcPKcRNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE26ENS_30AggregateFunctionUniqExactDataILS1_26EEEE5mergeEPcPKcRNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS1_42EEEE5mergeEPcPKcRNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS1_41EEEE5mergeEPcPKcRNS_5ArenaE |
195 | | |
196 | | void add_batch_single_place(size_t batch_size, AggregateDataPtr place, const IColumn** columns, |
197 | 260 | Arena&) const override { |
198 | 260 | std::vector<KeyType> keys_container; |
199 | 260 | const KeyType* keys = get_keys(keys_container, *columns[0], batch_size); |
200 | 260 | auto& set = this->data(place).set; |
201 | | |
202 | | // Precompute hash values to avoid double computation in prefetch + insert |
203 | 260 | std::vector<size_t> hash_values(batch_size); |
204 | 41.0k | for (size_t i = 0; i < batch_size; ++i) { |
205 | 40.7k | hash_values[i] = set.hash(keys[i]); |
206 | 40.7k | } |
207 | | |
208 | 41.0k | for (size_t i = 0; i != batch_size; ++i) { |
209 | 40.7k | if (i + HASH_MAP_PREFETCH_DIST < batch_size) { |
210 | 39.8k | set.prefetch_hash(hash_values[i + HASH_MAP_PREFETCH_DIST]); |
211 | 39.8k | } |
212 | 40.7k | set.emplace_with_hash(hash_values[i], keys[i]); |
213 | 40.7k | } |
214 | 260 | } Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE2ENS_30AggregateFunctionUniqExactDataILS1_2EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE3ENS_30AggregateFunctionUniqExactDataILS1_3EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE Line | Count | Source | 197 | 12 | Arena&) const override { | 198 | 12 | std::vector<KeyType> keys_container; | 199 | 12 | const KeyType* keys = get_keys(keys_container, *columns[0], batch_size); | 200 | 12 | auto& set = this->data(place).set; | 201 | | | 202 | | // Precompute hash values to avoid double computation in prefetch + insert | 203 | 12 | std::vector<size_t> hash_values(batch_size); | 204 | 39 | for (size_t i = 0; i < batch_size; ++i) { | 205 | 27 | hash_values[i] = set.hash(keys[i]); | 206 | 27 | } | 207 | | | 208 | 39 | for (size_t i = 0; i != batch_size; ++i) { | 209 | 27 | if (i + HASH_MAP_PREFETCH_DIST < batch_size) { | 210 | 0 | set.prefetch_hash(hash_values[i + HASH_MAP_PREFETCH_DIST]); | 211 | 0 | } | 212 | 27 | set.emplace_with_hash(hash_values[i], keys[i]); | 213 | 27 | } | 214 | 12 | } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE4ENS_30AggregateFunctionUniqExactDataILS1_4EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE5ENS_30AggregateFunctionUniqExactDataILS1_5EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE Line | Count | Source | 197 | 171 | Arena&) const override { | 198 | 171 | std::vector<KeyType> keys_container; | 199 | 171 | const KeyType* keys = get_keys(keys_container, *columns[0], batch_size); | 200 | 171 | auto& set = this->data(place).set; | 201 | | | 202 | | // Precompute hash values to avoid double computation in prefetch + insert | 203 | 171 | std::vector<size_t> hash_values(batch_size); | 204 | 787 | for (size_t i = 0; i < batch_size; ++i) { | 205 | 616 | hash_values[i] = set.hash(keys[i]); | 206 | 616 | } | 207 | | | 208 | 790 | for (size_t i = 0; i != batch_size; ++i) { | 209 | 619 | if (i + HASH_MAP_PREFETCH_DIST < batch_size) { | 210 | 52 | set.prefetch_hash(hash_values[i + HASH_MAP_PREFETCH_DIST]); | 211 | 52 | } | 212 | 619 | set.emplace_with_hash(hash_values[i], keys[i]); | 213 | 619 | } | 214 | 171 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE6ENS_30AggregateFunctionUniqExactDataILS1_6EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE Line | Count | Source | 197 | 51 | Arena&) const override { | 198 | 51 | std::vector<KeyType> keys_container; | 199 | 51 | const KeyType* keys = get_keys(keys_container, *columns[0], batch_size); | 200 | 51 | auto& set = this->data(place).set; | 201 | | | 202 | | // Precompute hash values to avoid double computation in prefetch + insert | 203 | 51 | std::vector<size_t> hash_values(batch_size); | 204 | 40.1k | for (size_t i = 0; i < batch_size; ++i) { | 205 | 40.1k | hash_values[i] = set.hash(keys[i]); | 206 | 40.1k | } | 207 | | | 208 | 40.1k | for (size_t i = 0; i != batch_size; ++i) { | 209 | 40.1k | if (i + HASH_MAP_PREFETCH_DIST < batch_size) { | 210 | 39.8k | set.prefetch_hash(hash_values[i + HASH_MAP_PREFETCH_DIST]); | 211 | 39.8k | } | 212 | 40.1k | set.emplace_with_hash(hash_values[i], keys[i]); | 213 | 40.1k | } | 214 | 51 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE7ENS_30AggregateFunctionUniqExactDataILS1_7EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE Line | Count | Source | 197 | 2 | Arena&) const override { | 198 | 2 | std::vector<KeyType> keys_container; | 199 | 2 | const KeyType* keys = get_keys(keys_container, *columns[0], batch_size); | 200 | 2 | auto& set = this->data(place).set; | 201 | | | 202 | | // Precompute hash values to avoid double computation in prefetch + insert | 203 | 2 | std::vector<size_t> hash_values(batch_size); | 204 | 6 | for (size_t i = 0; i < batch_size; ++i) { | 205 | 4 | hash_values[i] = set.hash(keys[i]); | 206 | 4 | } | 207 | | | 208 | 6 | for (size_t i = 0; i != batch_size; ++i) { | 209 | 4 | if (i + HASH_MAP_PREFETCH_DIST < batch_size) { | 210 | 0 | set.prefetch_hash(hash_values[i + HASH_MAP_PREFETCH_DIST]); | 211 | 0 | } | 212 | 4 | set.emplace_with_hash(hash_values[i], keys[i]); | 213 | 4 | } | 214 | 2 | } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE28ENS_30AggregateFunctionUniqExactDataILS1_28EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE29ENS_30AggregateFunctionUniqExactDataILS1_29EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE30ENS_30AggregateFunctionUniqExactDataILS1_30EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE35ENS_30AggregateFunctionUniqExactDataILS1_35EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE10ENS_30AggregateFunctionUniqExactDataILS1_10EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE17ENS_30AggregateFunctionUniqExactDataILS1_17EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE8ENS_30AggregateFunctionUniqExactDataILS1_8EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE9ENS_30AggregateFunctionUniqExactDataILS1_9EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE25ENS_30AggregateFunctionUniqExactDataILS1_25EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE26ENS_30AggregateFunctionUniqExactDataILS1_26EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS1_42EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS1_41EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE Line | Count | Source | 197 | 24 | Arena&) const override { | 198 | 24 | std::vector<KeyType> keys_container; | 199 | 24 | const KeyType* keys = get_keys(keys_container, *columns[0], batch_size); | 200 | 24 | auto& set = this->data(place).set; | 201 | | | 202 | | // Precompute hash values to avoid double computation in prefetch + insert | 203 | 24 | std::vector<size_t> hash_values(batch_size); | 204 | 48 | for (size_t i = 0; i < batch_size; ++i) { | 205 | 24 | hash_values[i] = set.hash(keys[i]); | 206 | 24 | } | 207 | | | 208 | 48 | for (size_t i = 0; i != batch_size; ++i) { | 209 | 24 | if (i + HASH_MAP_PREFETCH_DIST < batch_size) { | 210 | 0 | set.prefetch_hash(hash_values[i + HASH_MAP_PREFETCH_DIST]); | 211 | 0 | } | 212 | 24 | set.emplace_with_hash(hash_values[i], keys[i]); | 213 | 24 | } | 214 | 24 | } |
|
215 | | |
216 | 10.9k | void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override { |
217 | 10.9k | auto& set = this->data(place).set; |
218 | 10.9k | buf.write_var_uint(set.size()); |
219 | 36.9k | for (const auto& elem : set) { |
220 | 36.9k | buf.write_binary(elem); |
221 | 36.9k | } |
222 | 10.9k | } _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE2ENS_30AggregateFunctionUniqExactDataILS1_2EEEE9serializeEPKcRNS_14BufferWritableE Line | Count | Source | 216 | 11 | void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override { | 217 | 11 | auto& set = this->data(place).set; | 218 | 11 | buf.write_var_uint(set.size()); | 219 | 11 | for (const auto& elem : set) { | 220 | 11 | buf.write_binary(elem); | 221 | 11 | } | 222 | 11 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE3ENS_30AggregateFunctionUniqExactDataILS1_3EEEE9serializeEPKcRNS_14BufferWritableE Line | Count | Source | 216 | 6 | void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override { | 217 | 6 | auto& set = this->data(place).set; | 218 | 6 | buf.write_var_uint(set.size()); | 219 | 6 | for (const auto& elem : set) { | 220 | 6 | buf.write_binary(elem); | 221 | 6 | } | 222 | 6 | } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE4ENS_30AggregateFunctionUniqExactDataILS1_4EEEE9serializeEPKcRNS_14BufferWritableE _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE5ENS_30AggregateFunctionUniqExactDataILS1_5EEEE9serializeEPKcRNS_14BufferWritableE Line | Count | Source | 216 | 9.48k | void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override { | 217 | 9.48k | auto& set = this->data(place).set; | 218 | 9.48k | buf.write_var_uint(set.size()); | 219 | 35.6k | for (const auto& elem : set) { | 220 | 35.6k | buf.write_binary(elem); | 221 | 35.6k | } | 222 | 9.48k | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE6ENS_30AggregateFunctionUniqExactDataILS1_6EEEE9serializeEPKcRNS_14BufferWritableE Line | Count | Source | 216 | 66 | void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override { | 217 | 66 | auto& set = this->data(place).set; | 218 | 66 | buf.write_var_uint(set.size()); | 219 | 70 | for (const auto& elem : set) { | 220 | 70 | buf.write_binary(elem); | 221 | 70 | } | 222 | 66 | } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE7ENS_30AggregateFunctionUniqExactDataILS1_7EEEE9serializeEPKcRNS_14BufferWritableE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE28ENS_30AggregateFunctionUniqExactDataILS1_28EEEE9serializeEPKcRNS_14BufferWritableE _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE29ENS_30AggregateFunctionUniqExactDataILS1_29EEEE9serializeEPKcRNS_14BufferWritableE Line | Count | Source | 216 | 11 | void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override { | 217 | 11 | auto& set = this->data(place).set; | 218 | 11 | buf.write_var_uint(set.size()); | 219 | 24 | for (const auto& elem : set) { | 220 | 24 | buf.write_binary(elem); | 221 | 24 | } | 222 | 11 | } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE30ENS_30AggregateFunctionUniqExactDataILS1_30EEEE9serializeEPKcRNS_14BufferWritableE _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE35ENS_30AggregateFunctionUniqExactDataILS1_35EEEE9serializeEPKcRNS_14BufferWritableE Line | Count | Source | 216 | 10 | void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override { | 217 | 10 | auto& set = this->data(place).set; | 218 | 10 | buf.write_var_uint(set.size()); | 219 | 20 | for (const auto& elem : set) { | 220 | 20 | buf.write_binary(elem); | 221 | 20 | } | 222 | 10 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE10ENS_30AggregateFunctionUniqExactDataILS1_10EEEE9serializeEPKcRNS_14BufferWritableE Line | Count | Source | 216 | 1.00k | void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override { | 217 | 1.00k | auto& set = this->data(place).set; | 218 | 1.00k | buf.write_var_uint(set.size()); | 219 | 1.00k | for (const auto& elem : set) { | 220 | 707 | buf.write_binary(elem); | 221 | 707 | } | 222 | 1.00k | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE17ENS_30AggregateFunctionUniqExactDataILS1_17EEEE9serializeEPKcRNS_14BufferWritableE Line | Count | Source | 216 | 2 | void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override { | 217 | 2 | auto& set = this->data(place).set; | 218 | 2 | buf.write_var_uint(set.size()); | 219 | 12 | for (const auto& elem : set) { | 220 | 12 | buf.write_binary(elem); | 221 | 12 | } | 222 | 2 | } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE8ENS_30AggregateFunctionUniqExactDataILS1_8EEEE9serializeEPKcRNS_14BufferWritableE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE9ENS_30AggregateFunctionUniqExactDataILS1_9EEEE9serializeEPKcRNS_14BufferWritableE _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE25ENS_30AggregateFunctionUniqExactDataILS1_25EEEE9serializeEPKcRNS_14BufferWritableE Line | Count | Source | 216 | 268 | void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override { | 217 | 268 | auto& set = this->data(place).set; | 218 | 268 | buf.write_var_uint(set.size()); | 219 | 271 | for (const auto& elem : set) { | 220 | 271 | buf.write_binary(elem); | 221 | 271 | } | 222 | 268 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE26ENS_30AggregateFunctionUniqExactDataILS1_26EEEE9serializeEPKcRNS_14BufferWritableE Line | Count | Source | 216 | 1 | void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override { | 217 | 1 | auto& set = this->data(place).set; | 218 | 1 | buf.write_var_uint(set.size()); | 219 | 12 | for (const auto& elem : set) { | 220 | 12 | buf.write_binary(elem); | 221 | 12 | } | 222 | 1 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS1_42EEEE9serializeEPKcRNS_14BufferWritableE Line | Count | Source | 216 | 42 | void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override { | 217 | 42 | auto& set = this->data(place).set; | 218 | 42 | buf.write_var_uint(set.size()); | 219 | 68 | for (const auto& elem : set) { | 220 | 68 | buf.write_binary(elem); | 221 | 68 | } | 222 | 42 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS1_41EEEE9serializeEPKcRNS_14BufferWritableE Line | Count | Source | 216 | 24 | void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override { | 217 | 24 | auto& set = this->data(place).set; | 218 | 24 | buf.write_var_uint(set.size()); | 219 | 24 | for (const auto& elem : set) { | 220 | 24 | buf.write_binary(elem); | 221 | 24 | } | 222 | 24 | } |
|
223 | | |
224 | | void deserialize_and_merge(AggregateDataPtr __restrict place, AggregateDataPtr __restrict rhs, |
225 | 10.7k | BufferReadable& buf, Arena&) const override { |
226 | 10.7k | auto& set = this->data(place).set; |
227 | 10.7k | UInt64 size; |
228 | 10.7k | buf.read_var_uint(size); |
229 | | |
230 | 10.7k | set.rehash(size + set.size()); |
231 | | |
232 | 47.5k | for (size_t i = 0; i < size; ++i) { |
233 | 36.7k | KeyType ref; |
234 | 36.7k | buf.read_binary(ref); |
235 | 36.7k | set.insert(ref); |
236 | 36.7k | } |
237 | 10.7k | } _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE2ENS_30AggregateFunctionUniqExactDataILS1_2EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE Line | Count | Source | 225 | 11 | BufferReadable& buf, Arena&) const override { | 226 | 11 | auto& set = this->data(place).set; | 227 | 11 | UInt64 size; | 228 | 11 | buf.read_var_uint(size); | 229 | | | 230 | 11 | set.rehash(size + set.size()); | 231 | | | 232 | 22 | for (size_t i = 0; i < size; ++i) { | 233 | 11 | KeyType ref; | 234 | 11 | buf.read_binary(ref); | 235 | 11 | set.insert(ref); | 236 | 11 | } | 237 | 11 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE3ENS_30AggregateFunctionUniqExactDataILS1_3EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE Line | Count | Source | 225 | 6 | BufferReadable& buf, Arena&) const override { | 226 | 6 | auto& set = this->data(place).set; | 227 | 6 | UInt64 size; | 228 | 6 | buf.read_var_uint(size); | 229 | | | 230 | 6 | set.rehash(size + set.size()); | 231 | | | 232 | 12 | for (size_t i = 0; i < size; ++i) { | 233 | 6 | KeyType ref; | 234 | 6 | buf.read_binary(ref); | 235 | 6 | set.insert(ref); | 236 | 6 | } | 237 | 6 | } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE4ENS_30AggregateFunctionUniqExactDataILS1_4EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE5ENS_30AggregateFunctionUniqExactDataILS1_5EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE Line | Count | Source | 225 | 9.44k | BufferReadable& buf, Arena&) const override { | 226 | 9.44k | auto& set = this->data(place).set; | 227 | 9.44k | UInt64 size; | 228 | 9.44k | buf.read_var_uint(size); | 229 | | | 230 | 9.44k | set.rehash(size + set.size()); | 231 | | | 232 | 45.0k | for (size_t i = 0; i < size; ++i) { | 233 | 35.6k | KeyType ref; | 234 | 35.6k | buf.read_binary(ref); | 235 | 35.6k | set.insert(ref); | 236 | 35.6k | } | 237 | 9.44k | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE6ENS_30AggregateFunctionUniqExactDataILS1_6EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE Line | Count | Source | 225 | 66 | BufferReadable& buf, Arena&) const override { | 226 | 66 | auto& set = this->data(place).set; | 227 | 66 | UInt64 size; | 228 | 66 | buf.read_var_uint(size); | 229 | | | 230 | 66 | set.rehash(size + set.size()); | 231 | | | 232 | 136 | for (size_t i = 0; i < size; ++i) { | 233 | 70 | KeyType ref; | 234 | 70 | buf.read_binary(ref); | 235 | 70 | set.insert(ref); | 236 | 70 | } | 237 | 66 | } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE7ENS_30AggregateFunctionUniqExactDataILS1_7EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE28ENS_30AggregateFunctionUniqExactDataILS1_28EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE29ENS_30AggregateFunctionUniqExactDataILS1_29EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE Line | Count | Source | 225 | 11 | BufferReadable& buf, Arena&) const override { | 226 | 11 | auto& set = this->data(place).set; | 227 | 11 | UInt64 size; | 228 | 11 | buf.read_var_uint(size); | 229 | | | 230 | 11 | set.rehash(size + set.size()); | 231 | | | 232 | 35 | for (size_t i = 0; i < size; ++i) { | 233 | 24 | KeyType ref; | 234 | 24 | buf.read_binary(ref); | 235 | 24 | set.insert(ref); | 236 | 24 | } | 237 | 11 | } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE30ENS_30AggregateFunctionUniqExactDataILS1_30EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE35ENS_30AggregateFunctionUniqExactDataILS1_35EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE Line | Count | Source | 225 | 10 | BufferReadable& buf, Arena&) const override { | 226 | 10 | auto& set = this->data(place).set; | 227 | 10 | UInt64 size; | 228 | 10 | buf.read_var_uint(size); | 229 | | | 230 | 10 | set.rehash(size + set.size()); | 231 | | | 232 | 30 | for (size_t i = 0; i < size; ++i) { | 233 | 20 | KeyType ref; | 234 | 20 | buf.read_binary(ref); | 235 | 20 | set.insert(ref); | 236 | 20 | } | 237 | 10 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE10ENS_30AggregateFunctionUniqExactDataILS1_10EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE Line | Count | Source | 225 | 907 | BufferReadable& buf, Arena&) const override { | 226 | 907 | auto& set = this->data(place).set; | 227 | 907 | UInt64 size; | 228 | 907 | buf.read_var_uint(size); | 229 | | | 230 | 907 | set.rehash(size + set.size()); | 231 | | | 232 | 1.49k | for (size_t i = 0; i < size; ++i) { | 233 | 588 | KeyType ref; | 234 | 588 | buf.read_binary(ref); | 235 | 588 | set.insert(ref); | 236 | 588 | } | 237 | 907 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE17ENS_30AggregateFunctionUniqExactDataILS1_17EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE Line | Count | Source | 225 | 2 | BufferReadable& buf, Arena&) const override { | 226 | 2 | auto& set = this->data(place).set; | 227 | 2 | UInt64 size; | 228 | 2 | buf.read_var_uint(size); | 229 | | | 230 | 2 | set.rehash(size + set.size()); | 231 | | | 232 | 14 | for (size_t i = 0; i < size; ++i) { | 233 | 12 | KeyType ref; | 234 | 12 | buf.read_binary(ref); | 235 | 12 | set.insert(ref); | 236 | 12 | } | 237 | 2 | } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE8ENS_30AggregateFunctionUniqExactDataILS1_8EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE9ENS_30AggregateFunctionUniqExactDataILS1_9EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE25ENS_30AggregateFunctionUniqExactDataILS1_25EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE Line | Count | Source | 225 | 268 | BufferReadable& buf, Arena&) const override { | 226 | 268 | auto& set = this->data(place).set; | 227 | 268 | UInt64 size; | 228 | 268 | buf.read_var_uint(size); | 229 | | | 230 | 268 | set.rehash(size + set.size()); | 231 | | | 232 | 539 | for (size_t i = 0; i < size; ++i) { | 233 | 271 | KeyType ref; | 234 | 271 | buf.read_binary(ref); | 235 | 271 | set.insert(ref); | 236 | 271 | } | 237 | 268 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE26ENS_30AggregateFunctionUniqExactDataILS1_26EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE Line | Count | Source | 225 | 1 | BufferReadable& buf, Arena&) const override { | 226 | 1 | auto& set = this->data(place).set; | 227 | 1 | UInt64 size; | 228 | 1 | buf.read_var_uint(size); | 229 | | | 230 | 1 | set.rehash(size + set.size()); | 231 | | | 232 | 13 | for (size_t i = 0; i < size; ++i) { | 233 | 12 | KeyType ref; | 234 | 12 | buf.read_binary(ref); | 235 | 12 | set.insert(ref); | 236 | 12 | } | 237 | 1 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS1_42EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE Line | Count | Source | 225 | 42 | BufferReadable& buf, Arena&) const override { | 226 | 42 | auto& set = this->data(place).set; | 227 | 42 | UInt64 size; | 228 | 42 | buf.read_var_uint(size); | 229 | | | 230 | 42 | set.rehash(size + set.size()); | 231 | | | 232 | 110 | for (size_t i = 0; i < size; ++i) { | 233 | 68 | KeyType ref; | 234 | 68 | buf.read_binary(ref); | 235 | 68 | set.insert(ref); | 236 | 68 | } | 237 | 42 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS1_41EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE Line | Count | Source | 225 | 24 | BufferReadable& buf, Arena&) const override { | 226 | 24 | auto& set = this->data(place).set; | 227 | 24 | UInt64 size; | 228 | 24 | buf.read_var_uint(size); | 229 | | | 230 | 24 | set.rehash(size + set.size()); | 231 | | | 232 | 48 | for (size_t i = 0; i < size; ++i) { | 233 | 24 | KeyType ref; | 234 | 24 | buf.read_binary(ref); | 235 | 24 | set.insert(ref); | 236 | 24 | } | 237 | 24 | } |
|
238 | | |
239 | | void deserialize(AggregateDataPtr __restrict place, BufferReadable& buf, |
240 | 81 | Arena&) const override { |
241 | 81 | auto& set = this->data(place).set; |
242 | 81 | UInt64 size; |
243 | 81 | buf.read_var_uint(size); |
244 | | |
245 | 81 | set.rehash(size + set.size()); |
246 | | |
247 | 174 | for (size_t i = 0; i < size; ++i) { |
248 | 93 | KeyType ref; |
249 | 93 | buf.read_binary(ref); |
250 | 93 | set.insert(ref); |
251 | 93 | } |
252 | 81 | } Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE2ENS_30AggregateFunctionUniqExactDataILS1_2EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE3ENS_30AggregateFunctionUniqExactDataILS1_3EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE4ENS_30AggregateFunctionUniqExactDataILS1_4EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE5ENS_30AggregateFunctionUniqExactDataILS1_5EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE6ENS_30AggregateFunctionUniqExactDataILS1_6EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE7ENS_30AggregateFunctionUniqExactDataILS1_7EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE28ENS_30AggregateFunctionUniqExactDataILS1_28EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE29ENS_30AggregateFunctionUniqExactDataILS1_29EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE30ENS_30AggregateFunctionUniqExactDataILS1_30EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE35ENS_30AggregateFunctionUniqExactDataILS1_35EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE10ENS_30AggregateFunctionUniqExactDataILS1_10EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE Line | Count | Source | 240 | 81 | Arena&) const override { | 241 | 81 | auto& set = this->data(place).set; | 242 | 81 | UInt64 size; | 243 | 81 | buf.read_var_uint(size); | 244 | | | 245 | 81 | set.rehash(size + set.size()); | 246 | | | 247 | 174 | for (size_t i = 0; i < size; ++i) { | 248 | 93 | KeyType ref; | 249 | 93 | buf.read_binary(ref); | 250 | 93 | set.insert(ref); | 251 | 93 | } | 252 | 81 | } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE17ENS_30AggregateFunctionUniqExactDataILS1_17EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE8ENS_30AggregateFunctionUniqExactDataILS1_8EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE9ENS_30AggregateFunctionUniqExactDataILS1_9EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE25ENS_30AggregateFunctionUniqExactDataILS1_25EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE26ENS_30AggregateFunctionUniqExactDataILS1_26EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS1_42EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS1_41EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE |
253 | | |
254 | 10.5k | void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override { |
255 | 10.5k | assert_cast<ColumnInt64&>(to).get_data().push_back(this->data(place).set.size()); |
256 | 10.5k | } _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE2ENS_30AggregateFunctionUniqExactDataILS1_2EEEE18insert_result_intoEPKcRNS_7IColumnE Line | Count | Source | 254 | 11 | void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override { | 255 | 11 | assert_cast<ColumnInt64&>(to).get_data().push_back(this->data(place).set.size()); | 256 | 11 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE3ENS_30AggregateFunctionUniqExactDataILS1_3EEEE18insert_result_intoEPKcRNS_7IColumnE Line | Count | Source | 254 | 12 | void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override { | 255 | 12 | assert_cast<ColumnInt64&>(to).get_data().push_back(this->data(place).set.size()); | 256 | 12 | } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE4ENS_30AggregateFunctionUniqExactDataILS1_4EEEE18insert_result_intoEPKcRNS_7IColumnE _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE5ENS_30AggregateFunctionUniqExactDataILS1_5EEEE18insert_result_intoEPKcRNS_7IColumnE Line | Count | Source | 254 | 9.33k | void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override { | 255 | 9.33k | assert_cast<ColumnInt64&>(to).get_data().push_back(this->data(place).set.size()); | 256 | 9.33k | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE6ENS_30AggregateFunctionUniqExactDataILS1_6EEEE18insert_result_intoEPKcRNS_7IColumnE Line | Count | Source | 254 | 217 | void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override { | 255 | 217 | assert_cast<ColumnInt64&>(to).get_data().push_back(this->data(place).set.size()); | 256 | 217 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE7ENS_30AggregateFunctionUniqExactDataILS1_7EEEE18insert_result_intoEPKcRNS_7IColumnE Line | Count | Source | 254 | 12 | void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override { | 255 | 12 | assert_cast<ColumnInt64&>(to).get_data().push_back(this->data(place).set.size()); | 256 | 12 | } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE28ENS_30AggregateFunctionUniqExactDataILS1_28EEEE18insert_result_intoEPKcRNS_7IColumnE _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE29ENS_30AggregateFunctionUniqExactDataILS1_29EEEE18insert_result_intoEPKcRNS_7IColumnE Line | Count | Source | 254 | 11 | void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override { | 255 | 11 | assert_cast<ColumnInt64&>(to).get_data().push_back(this->data(place).set.size()); | 256 | 11 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE30ENS_30AggregateFunctionUniqExactDataILS1_30EEEE18insert_result_intoEPKcRNS_7IColumnE Line | Count | Source | 254 | 17 | void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override { | 255 | 17 | assert_cast<ColumnInt64&>(to).get_data().push_back(this->data(place).set.size()); | 256 | 17 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE35ENS_30AggregateFunctionUniqExactDataILS1_35EEEE18insert_result_intoEPKcRNS_7IColumnE Line | Count | Source | 254 | 16 | void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override { | 255 | 16 | assert_cast<ColumnInt64&>(to).get_data().push_back(this->data(place).set.size()); | 256 | 16 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE10ENS_30AggregateFunctionUniqExactDataILS1_10EEEE18insert_result_intoEPKcRNS_7IColumnE Line | Count | Source | 254 | 740 | void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override { | 255 | 740 | assert_cast<ColumnInt64&>(to).get_data().push_back(this->data(place).set.size()); | 256 | 740 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE17ENS_30AggregateFunctionUniqExactDataILS1_17EEEE18insert_result_intoEPKcRNS_7IColumnE Line | Count | Source | 254 | 2 | void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override { | 255 | 2 | assert_cast<ColumnInt64&>(to).get_data().push_back(this->data(place).set.size()); | 256 | 2 | } |
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE8ENS_30AggregateFunctionUniqExactDataILS1_8EEEE18insert_result_intoEPKcRNS_7IColumnE Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE9ENS_30AggregateFunctionUniqExactDataILS1_9EEEE18insert_result_intoEPKcRNS_7IColumnE _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE25ENS_30AggregateFunctionUniqExactDataILS1_25EEEE18insert_result_intoEPKcRNS_7IColumnE Line | Count | Source | 254 | 95 | void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override { | 255 | 95 | assert_cast<ColumnInt64&>(to).get_data().push_back(this->data(place).set.size()); | 256 | 95 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE26ENS_30AggregateFunctionUniqExactDataILS1_26EEEE18insert_result_intoEPKcRNS_7IColumnE Line | Count | Source | 254 | 1 | void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override { | 255 | 1 | assert_cast<ColumnInt64&>(to).get_data().push_back(this->data(place).set.size()); | 256 | 1 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS1_42EEEE18insert_result_intoEPKcRNS_7IColumnE Line | Count | Source | 254 | 42 | void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override { | 255 | 42 | assert_cast<ColumnInt64&>(to).get_data().push_back(this->data(place).set.size()); | 256 | 42 | } |
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS1_41EEEE18insert_result_intoEPKcRNS_7IColumnE Line | Count | Source | 254 | 8 | void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override { | 255 | 8 | assert_cast<ColumnInt64&>(to).get_data().push_back(this->data(place).set.size()); | 256 | 8 | } |
|
257 | | }; |
258 | | |
259 | | } // namespace doris |
260 | | |
261 | | #include "common/compile_check_end.h" |