Coverage Report

Created: 2026-10-10 11:10

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
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/arena.h"
32
#include "core/assert_cast.h"
33
#include "core/column/column.h"
34
#include "core/column/column_decimal.h"
35
#include "core/column/column_vector.h"
36
#include "core/data_type/data_type_number.h"
37
#include "core/data_type/primitive_type.h"
38
#include "core/string_buffer.hpp"
39
#include "core/string_ref.h"
40
#include "core/types.h"
41
#include "core/uint128.h"
42
#include "exec/common/hash_table/hash.h"
43
#include "exec/common/hash_table/phmap_fwd_decl.h"
44
#include "exprs/aggregate/aggregate_function.h"
45
#include "util/var_int.h"
46
47
template <typename T>
48
struct HashCRC32;
49
50
namespace doris {
51
52
class Arena;
53
class BufferReadable;
54
class BufferWritable;
55
template <PrimitiveType T>
56
class ColumnDecimal;
57
/// uniqExact
58
59
template <PrimitiveType T>
60
struct AggregateFunctionUniqExactData {
61
    static constexpr bool is_string_key = is_string_type(T) || is_varbinary(T);
62
    using Key = std::conditional_t<
63
            is_string_key, UInt128,
64
            std::conditional_t<T == TYPE_ARRAY, UInt64,
65
                               std::conditional_t<T == TYPE_BOOLEAN, UInt8,
66
                                                  typename PrimitiveTypeTraits<T>::CppType>>>;
67
    using Hash = HashCRC32<Key>;
68
69
    using Set = flat_hash_set<Key, Hash>;
70
71
600k
    static UInt128 ALWAYS_INLINE get_key(const StringRef& value) {
72
600k
        auto hash_value = XXH_INLINE_XXH128(value.data, value.size, 0);
73
600k
        return UInt128 {hash_value.high64, hash_value.low64};
74
600k
    }
_ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE10EE7get_keyERKNS_9StringRefE
Line
Count
Source
71
600k
    static UInt128 ALWAYS_INLINE get_key(const StringRef& value) {
72
600k
        auto hash_value = XXH_INLINE_XXH128(value.data, value.size, 0);
73
600k
        return UInt128 {hash_value.high64, hash_value.low64};
74
600k
    }
Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE41EE7get_keyERKNS_9StringRefE
75
14
    static UInt64 ALWAYS_INLINE get_key(const IColumn& column, size_t row_num) {
76
14
        UInt64 hash_value = 0;
77
14
        column.update_xxHash_with_value(row_num, row_num + 1, hash_value, nullptr);
78
14
        return hash_value;
79
14
    }
80
81
    Set set;
82
83
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
83
25
    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
83
10
    static String get_name() { return "multi_distinct"; }
Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE35EE8get_nameB5cxx11Ev
_ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE10EE8get_nameB5cxx11Ev
Line
Count
Source
83
4
    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_13PrimitiveTypeE43EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE42EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE41EE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE44EE8get_nameB5cxx11Ev
84
85
38
    void reset() { set.clear(); }
Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE2EE5resetEv
Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE3EE5resetEv
Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE4EE5resetEv
_ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE5EE5resetEv
Line
Count
Source
85
33
    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
85
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_13PrimitiveTypeE43EE5resetEv
Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE42EE5resetEv
Unexecuted instantiation: _ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE41EE5resetEv
_ZN5doris30AggregateFunctionUniqExactDataILNS_13PrimitiveTypeE44EE5resetEv
Line
Count
Source
85
2
    void reset() { set.clear(); }
86
};
87
88
struct AggregateFunctionUniqVariantData {
89
    using Set = flat_hash_set<StringRef, StringRefHash>;
90
91
    Set set;
92
93
0
    static String get_name() { return "multi_distinct"; }
94
95
1
    void reset() { set.clear(); }
96
97
20
    void insert_borrowed(StringRef key, Arena& arena) {
98
20
        if (set.contains(key)) {
99
11
            return;
100
11
        }
101
9
        key.data = arena.insert(key.data, key.size);
102
9
        set.emplace(key);
103
9
    }
104
};
105
106
namespace detail {
107
108
/** The structure for the delegation work to add one element to the `uniq` aggregate functions.
109
  * Used for partial specialization to add strings.
110
  */
111
template <PrimitiveType T, typename Data>
112
struct OneAdder {
113
676
    static void ALWAYS_INLINE add(Data& data, const IColumn& column, size_t row_num) {
114
676
        if constexpr (is_string_type(T) || is_varbinary(T)) {
115
324
            StringRef value = column.get_data_at(row_num);
116
324
            data.set.insert(Data::get_key(value));
117
324
        } else if constexpr (T == TYPE_ARRAY) {
118
14
            data.set.insert(Data::get_key(column, row_num));
119
338
        } else {
120
338
            data.set.insert(assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&,
121
338
                                        TypeCheckOnRelease::DISABLE>(column)
122
338
                                    .get_data()[row_num]);
123
338
        }
124
676
    }
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
_ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE2ENS_30AggregateFunctionUniqExactDataILS2_2EEEE3addERS4_RKNS_7IColumnEm
Line
Count
Source
113
15
    static void ALWAYS_INLINE add(Data& data, const IColumn& column, size_t row_num) {
114
        if constexpr (is_string_type(T) || is_varbinary(T)) {
115
            StringRef value = column.get_data_at(row_num);
116
            data.set.insert(Data::get_key(value));
117
        } else if constexpr (T == TYPE_ARRAY) {
118
            data.set.insert(Data::get_key(column, row_num));
119
15
        } else {
120
15
            data.set.insert(assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&,
121
15
                                        TypeCheckOnRelease::DISABLE>(column)
122
15
                                    .get_data()[row_num]);
123
15
        }
124
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
113
179
    static void ALWAYS_INLINE add(Data& data, const IColumn& column, size_t row_num) {
114
        if constexpr (is_string_type(T) || is_varbinary(T)) {
115
            StringRef value = column.get_data_at(row_num);
116
            data.set.insert(Data::get_key(value));
117
        } else if constexpr (T == TYPE_ARRAY) {
118
            data.set.insert(Data::get_key(column, row_num));
119
179
        } else {
120
179
            data.set.insert(assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&,
121
179
                                        TypeCheckOnRelease::DISABLE>(column)
122
179
                                    .get_data()[row_num]);
123
179
        }
124
179
    }
_ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE6ENS_30AggregateFunctionUniqExactDataILS2_6EEEE3addERS4_RKNS_7IColumnEm
Line
Count
Source
113
15
    static void ALWAYS_INLINE add(Data& data, const IColumn& column, size_t row_num) {
114
        if constexpr (is_string_type(T) || is_varbinary(T)) {
115
            StringRef value = column.get_data_at(row_num);
116
            data.set.insert(Data::get_key(value));
117
        } else if constexpr (T == TYPE_ARRAY) {
118
            data.set.insert(Data::get_key(column, row_num));
119
15
        } else {
120
15
            data.set.insert(assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&,
121
15
                                        TypeCheckOnRelease::DISABLE>(column)
122
15
                                    .get_data()[row_num]);
123
15
        }
124
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
113
4
    static void ALWAYS_INLINE add(Data& data, const IColumn& column, size_t row_num) {
114
        if constexpr (is_string_type(T) || is_varbinary(T)) {
115
            StringRef value = column.get_data_at(row_num);
116
            data.set.insert(Data::get_key(value));
117
        } else if constexpr (T == TYPE_ARRAY) {
118
            data.set.insert(Data::get_key(column, row_num));
119
4
        } else {
120
4
            data.set.insert(assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&,
121
4
                                        TypeCheckOnRelease::DISABLE>(column)
122
4
                                    .get_data()[row_num]);
123
4
        }
124
4
    }
_ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE30ENS_30AggregateFunctionUniqExactDataILS2_30EEEE3addERS4_RKNS_7IColumnEm
Line
Count
Source
113
17
    static void ALWAYS_INLINE add(Data& data, const IColumn& column, size_t row_num) {
114
        if constexpr (is_string_type(T) || is_varbinary(T)) {
115
            StringRef value = column.get_data_at(row_num);
116
            data.set.insert(Data::get_key(value));
117
        } else if constexpr (T == TYPE_ARRAY) {
118
            data.set.insert(Data::get_key(column, row_num));
119
17
        } else {
120
17
            data.set.insert(assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&,
121
17
                                        TypeCheckOnRelease::DISABLE>(column)
122
17
                                    .get_data()[row_num]);
123
17
        }
124
17
    }
Unexecuted instantiation: _ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE35ENS_30AggregateFunctionUniqExactDataILS2_35EEEE3addERS4_RKNS_7IColumnEm
_ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE10ENS_30AggregateFunctionUniqExactDataILS2_10EEEE3addERS4_RKNS_7IColumnEm
Line
Count
Source
113
324
    static void ALWAYS_INLINE add(Data& data, const IColumn& column, size_t row_num) {
114
324
        if constexpr (is_string_type(T) || is_varbinary(T)) {
115
324
            StringRef value = column.get_data_at(row_num);
116
324
            data.set.insert(Data::get_key(value));
117
        } else if constexpr (T == TYPE_ARRAY) {
118
            data.set.insert(Data::get_key(column, row_num));
119
        } else {
120
            data.set.insert(assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&,
121
                                        TypeCheckOnRelease::DISABLE>(column)
122
                                    .get_data()[row_num]);
123
        }
124
324
    }
_ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE17ENS_30AggregateFunctionUniqExactDataILS2_17EEEE3addERS4_RKNS_7IColumnEm
Line
Count
Source
113
14
    static void ALWAYS_INLINE add(Data& data, const IColumn& column, size_t row_num) {
114
        if constexpr (is_string_type(T) || is_varbinary(T)) {
115
            StringRef value = column.get_data_at(row_num);
116
            data.set.insert(Data::get_key(value));
117
14
        } else if constexpr (T == TYPE_ARRAY) {
118
14
            data.set.insert(Data::get_key(column, row_num));
119
        } else {
120
            data.set.insert(assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&,
121
                                        TypeCheckOnRelease::DISABLE>(column)
122
                                    .get_data()[row_num]);
123
        }
124
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
113
6
    static void ALWAYS_INLINE add(Data& data, const IColumn& column, size_t row_num) {
114
        if constexpr (is_string_type(T) || is_varbinary(T)) {
115
            StringRef value = column.get_data_at(row_num);
116
            data.set.insert(Data::get_key(value));
117
        } else if constexpr (T == TYPE_ARRAY) {
118
            data.set.insert(Data::get_key(column, row_num));
119
6
        } else {
120
6
            data.set.insert(assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&,
121
6
                                        TypeCheckOnRelease::DISABLE>(column)
122
6
                                    .get_data()[row_num]);
123
6
        }
124
6
    }
_ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE26ENS_30AggregateFunctionUniqExactDataILS2_26EEEE3addERS4_RKNS_7IColumnEm
Line
Count
Source
113
15
    static void ALWAYS_INLINE add(Data& data, const IColumn& column, size_t row_num) {
114
        if constexpr (is_string_type(T) || is_varbinary(T)) {
115
            StringRef value = column.get_data_at(row_num);
116
            data.set.insert(Data::get_key(value));
117
        } else if constexpr (T == TYPE_ARRAY) {
118
            data.set.insert(Data::get_key(column, row_num));
119
15
        } else {
120
15
            data.set.insert(assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&,
121
15
                                        TypeCheckOnRelease::DISABLE>(column)
122
15
                                    .get_data()[row_num]);
123
15
        }
124
15
    }
_ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE43ENS_30AggregateFunctionUniqExactDataILS2_43EEEE3addERS4_RKNS_7IColumnEm
Line
Count
Source
113
2
    static void ALWAYS_INLINE add(Data& data, const IColumn& column, size_t row_num) {
114
        if constexpr (is_string_type(T) || is_varbinary(T)) {
115
            StringRef value = column.get_data_at(row_num);
116
            data.set.insert(Data::get_key(value));
117
        } else if constexpr (T == TYPE_ARRAY) {
118
            data.set.insert(Data::get_key(column, row_num));
119
2
        } else {
120
2
            data.set.insert(assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&,
121
2
                                        TypeCheckOnRelease::DISABLE>(column)
122
2
                                    .get_data()[row_num]);
123
2
        }
124
2
    }
_ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS2_42EEEE3addERS4_RKNS_7IColumnEm
Line
Count
Source
113
6
    static void ALWAYS_INLINE add(Data& data, const IColumn& column, size_t row_num) {
114
        if constexpr (is_string_type(T) || is_varbinary(T)) {
115
            StringRef value = column.get_data_at(row_num);
116
            data.set.insert(Data::get_key(value));
117
        } else if constexpr (T == TYPE_ARRAY) {
118
            data.set.insert(Data::get_key(column, row_num));
119
6
        } else {
120
6
            data.set.insert(assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&,
121
6
                                        TypeCheckOnRelease::DISABLE>(column)
122
6
                                    .get_data()[row_num]);
123
6
        }
124
6
    }
Unexecuted instantiation: _ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS2_41EEEE3addERS4_RKNS_7IColumnEm
_ZN5doris6detail8OneAdderILNS_13PrimitiveTypeE44ENS_30AggregateFunctionUniqExactDataILS2_44EEEE3addERS4_RKNS_7IColumnEm
Line
Count
Source
113
79
    static void ALWAYS_INLINE add(Data& data, const IColumn& column, size_t row_num) {
114
        if constexpr (is_string_type(T) || is_varbinary(T)) {
115
            StringRef value = column.get_data_at(row_num);
116
            data.set.insert(Data::get_key(value));
117
        } else if constexpr (T == TYPE_ARRAY) {
118
            data.set.insert(Data::get_key(column, row_num));
119
79
        } else {
120
79
            data.set.insert(assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&,
121
79
                                        TypeCheckOnRelease::DISABLE>(column)
122
79
                                    .get_data()[row_num]);
123
79
        }
124
79
    }
125
};
126
127
} // namespace detail
128
129
/// Calculates the number of different values approximately or exactly.
130
template <PrimitiveType T, typename Data>
131
class AggregateFunctionUniq final
132
        : public IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>,
133
          VarargsExpression,
134
          NotNullableAggregateFunction {
135
public:
136
    using KeyType = std::conditional_t<
137
            is_string_type(T) || is_varbinary(T), UInt128,
138
            std::conditional_t<T == TYPE_ARRAY, UInt64, typename PrimitiveTypeTraits<T>::CppType>>;
139
    AggregateFunctionUniq(const DataTypes& argument_types_)
140
1.50k
            : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {}
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE2ENS_30AggregateFunctionUniqExactDataILS1_2EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
140
2
            : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {}
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE3ENS_30AggregateFunctionUniqExactDataILS1_3EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
140
10
            : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {}
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE4ENS_30AggregateFunctionUniqExactDataILS1_4EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
140
1
            : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {}
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE5ENS_30AggregateFunctionUniqExactDataILS1_5EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
140
556
            : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {}
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE6ENS_30AggregateFunctionUniqExactDataILS1_6EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
140
72
            : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {}
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE7ENS_30AggregateFunctionUniqExactDataILS1_7EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
140
4
            : 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
140
12
            : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {}
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE30ENS_30AggregateFunctionUniqExactDataILS1_30EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
140
1
            : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {}
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE35ENS_30AggregateFunctionUniqExactDataILS1_35EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
140
13
            : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {}
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE10ENS_30AggregateFunctionUniqExactDataILS1_10EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
140
563
            : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {}
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE17ENS_30AggregateFunctionUniqExactDataILS1_17EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
140
3
            : 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
140
10
            : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {}
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE26ENS_30AggregateFunctionUniqExactDataILS1_26EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
140
6
            : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {}
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE43ENS_30AggregateFunctionUniqExactDataILS1_43EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
140
5
            : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {}
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS1_42EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
140
8
            : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {}
Unexecuted instantiation: _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS1_41EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE44ENS_30AggregateFunctionUniqExactDataILS1_44EEEEC2ERKSt6vectorISt10shared_ptrIKNS_9IDataTypeEESaIS9_EE
Line
Count
Source
140
243
            : IAggregateFunctionDataHelper<Data, AggregateFunctionUniq<T, Data>>(argument_types_) {}
141
142
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
142
25
    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
142
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
142
4
    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_13PrimitiveTypeE43ENS_30AggregateFunctionUniqExactDataILS1_43EEEE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS1_42EEEE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS1_41EEEE8get_nameB5cxx11Ev
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE44ENS_30AggregateFunctionUniqExactDataILS1_44EEEE8get_nameB5cxx11Ev
143
144
7.14k
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE2ENS_30AggregateFunctionUniqExactDataILS1_2EEEE15get_return_typeEv
Line
Count
Source
144
11
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE3ENS_30AggregateFunctionUniqExactDataILS1_3EEEE15get_return_typeEv
Line
Count
Source
144
99
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE4ENS_30AggregateFunctionUniqExactDataILS1_4EEEE15get_return_typeEv
Line
Count
Source
144
5
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE5ENS_30AggregateFunctionUniqExactDataILS1_5EEEE15get_return_typeEv
Line
Count
Source
144
3.15k
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE6ENS_30AggregateFunctionUniqExactDataILS1_6EEEE15get_return_typeEv
Line
Count
Source
144
449
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE7ENS_30AggregateFunctionUniqExactDataILS1_7EEEE15get_return_typeEv
Line
Count
Source
144
41
    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
144
70
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE30ENS_30AggregateFunctionUniqExactDataILS1_30EEEE15get_return_typeEv
Line
Count
Source
144
17
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE35ENS_30AggregateFunctionUniqExactDataILS1_35EEEE15get_return_typeEv
Line
Count
Source
144
137
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE10ENS_30AggregateFunctionUniqExactDataILS1_10EEEE15get_return_typeEv
Line
Count
Source
144
2.49k
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE17ENS_30AggregateFunctionUniqExactDataILS1_17EEEE15get_return_typeEv
Line
Count
Source
144
11
    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
144
56
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE26ENS_30AggregateFunctionUniqExactDataILS1_26EEEE15get_return_typeEv
Line
Count
Source
144
26
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE43ENS_30AggregateFunctionUniqExactDataILS1_43EEEE15get_return_typeEv
Line
Count
Source
144
16
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS1_42EEEE15get_return_typeEv
Line
Count
Source
144
36
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); }
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS1_41EEEE15get_return_typeEv
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE44ENS_30AggregateFunctionUniqExactDataILS1_44EEEE15get_return_typeEv
Line
Count
Source
144
517
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); }
145
146
38
    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
146
33
    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
146
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_13PrimitiveTypeE43ENS_30AggregateFunctionUniqExactDataILS1_43EEEE5resetEPc
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS1_42EEEE5resetEPc
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS1_41EEEE5resetEPc
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE44ENS_30AggregateFunctionUniqExactDataILS1_44EEEE5resetEPc
Line
Count
Source
146
2
    void reset(AggregateDataPtr __restrict place) const override { this->data(place).reset(); }
147
148
    void add(AggregateDataPtr __restrict place, const IColumn** columns, ssize_t row_num,
149
676
             Arena&) const override {
150
676
        detail::OneAdder<T, Data>::add(this->data(place), *columns[0], row_num);
151
676
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE2ENS_30AggregateFunctionUniqExactDataILS1_2EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Line
Count
Source
149
15
             Arena&) const override {
150
15
        detail::OneAdder<T, Data>::add(this->data(place), *columns[0], row_num);
151
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
149
179
             Arena&) const override {
150
179
        detail::OneAdder<T, Data>::add(this->data(place), *columns[0], row_num);
151
179
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE6ENS_30AggregateFunctionUniqExactDataILS1_6EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Line
Count
Source
149
15
             Arena&) const override {
150
15
        detail::OneAdder<T, Data>::add(this->data(place), *columns[0], row_num);
151
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
149
4
             Arena&) const override {
150
4
        detail::OneAdder<T, Data>::add(this->data(place), *columns[0], row_num);
151
4
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE30ENS_30AggregateFunctionUniqExactDataILS1_30EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Line
Count
Source
149
17
             Arena&) const override {
150
17
        detail::OneAdder<T, Data>::add(this->data(place), *columns[0], row_num);
151
17
    }
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE35ENS_30AggregateFunctionUniqExactDataILS1_35EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE10ENS_30AggregateFunctionUniqExactDataILS1_10EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Line
Count
Source
149
324
             Arena&) const override {
150
324
        detail::OneAdder<T, Data>::add(this->data(place), *columns[0], row_num);
151
324
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE17ENS_30AggregateFunctionUniqExactDataILS1_17EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Line
Count
Source
149
14
             Arena&) const override {
150
14
        detail::OneAdder<T, Data>::add(this->data(place), *columns[0], row_num);
151
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
149
6
             Arena&) const override {
150
6
        detail::OneAdder<T, Data>::add(this->data(place), *columns[0], row_num);
151
6
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE26ENS_30AggregateFunctionUniqExactDataILS1_26EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Line
Count
Source
149
15
             Arena&) const override {
150
15
        detail::OneAdder<T, Data>::add(this->data(place), *columns[0], row_num);
151
15
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE43ENS_30AggregateFunctionUniqExactDataILS1_43EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Line
Count
Source
149
2
             Arena&) const override {
150
2
        detail::OneAdder<T, Data>::add(this->data(place), *columns[0], row_num);
151
2
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS1_42EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Line
Count
Source
149
6
             Arena&) const override {
150
6
        detail::OneAdder<T, Data>::add(this->data(place), *columns[0], row_num);
151
6
    }
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS1_41EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE44ENS_30AggregateFunctionUniqExactDataILS1_44EEEE3addEPcPPKNS_7IColumnElRNS_5ArenaE
Line
Count
Source
149
79
             Arena&) const override {
150
79
        detail::OneAdder<T, Data>::add(this->data(place), *columns[0], row_num);
151
79
    }
152
153
    static ALWAYS_INLINE const KeyType* get_keys(std::vector<KeyType>& keys_container,
154
1.26k
                                                 const IColumn& column, size_t batch_size) {
155
1.26k
        if constexpr (is_string_type(T) || is_varbinary(T)) {
156
247
            keys_container.resize(batch_size);
157
600k
            for (size_t i = 0; i != batch_size; ++i) {
158
600k
                StringRef value = column.get_data_at(i);
159
600k
                keys_container[i] = Data::get_key(value);
160
600k
            }
161
247
            return keys_container.data();
162
247
        } else if constexpr (T == TYPE_ARRAY) {
163
0
            keys_container.resize(batch_size);
164
0
            for (size_t i = 0; i != batch_size; ++i) {
165
0
                keys_container[i] = Data::get_key(column, i);
166
0
            }
167
0
            return keys_container.data();
168
1.01k
        } else {
169
1.01k
            return assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(column)
170
1.01k
                    .get_data()
171
1.01k
                    .data();
172
1.01k
        }
173
1.26k
    }
Unexecuted instantiation: _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE2ENS_30AggregateFunctionUniqExactDataILS1_2EEEE8get_keysERSt6vectorIhSaIhEERKNS_7IColumnEm
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE3ENS_30AggregateFunctionUniqExactDataILS1_3EEEE8get_keysERSt6vectorIaSaIaEERKNS_7IColumnEm
Line
Count
Source
154
16
                                                 const IColumn& column, size_t batch_size) {
155
        if constexpr (is_string_type(T) || is_varbinary(T)) {
156
            keys_container.resize(batch_size);
157
            for (size_t i = 0; i != batch_size; ++i) {
158
                StringRef value = column.get_data_at(i);
159
                keys_container[i] = Data::get_key(value);
160
            }
161
            return keys_container.data();
162
        } else if constexpr (T == TYPE_ARRAY) {
163
            keys_container.resize(batch_size);
164
            for (size_t i = 0; i != batch_size; ++i) {
165
                keys_container[i] = Data::get_key(column, i);
166
            }
167
            return keys_container.data();
168
16
        } else {
169
16
            return assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(column)
170
16
                    .get_data()
171
16
                    .data();
172
16
        }
173
16
    }
Unexecuted instantiation: _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE4ENS_30AggregateFunctionUniqExactDataILS1_4EEEE8get_keysERSt6vectorIsSaIsEERKNS_7IColumnEm
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE5ENS_30AggregateFunctionUniqExactDataILS1_5EEEE8get_keysERSt6vectorIiSaIiEERKNS_7IColumnEm
Line
Count
Source
154
639
                                                 const IColumn& column, size_t batch_size) {
155
        if constexpr (is_string_type(T) || is_varbinary(T)) {
156
            keys_container.resize(batch_size);
157
            for (size_t i = 0; i != batch_size; ++i) {
158
                StringRef value = column.get_data_at(i);
159
                keys_container[i] = Data::get_key(value);
160
            }
161
            return keys_container.data();
162
        } else if constexpr (T == TYPE_ARRAY) {
163
            keys_container.resize(batch_size);
164
            for (size_t i = 0; i != batch_size; ++i) {
165
                keys_container[i] = Data::get_key(column, i);
166
            }
167
            return keys_container.data();
168
639
        } else {
169
639
            return assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(column)
170
639
                    .get_data()
171
639
                    .data();
172
639
        }
173
639
    }
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE6ENS_30AggregateFunctionUniqExactDataILS1_6EEEE8get_keysERSt6vectorIlSaIlEERKNS_7IColumnEm
Line
Count
Source
154
146
                                                 const IColumn& column, size_t batch_size) {
155
        if constexpr (is_string_type(T) || is_varbinary(T)) {
156
            keys_container.resize(batch_size);
157
            for (size_t i = 0; i != batch_size; ++i) {
158
                StringRef value = column.get_data_at(i);
159
                keys_container[i] = Data::get_key(value);
160
            }
161
            return keys_container.data();
162
        } else if constexpr (T == TYPE_ARRAY) {
163
            keys_container.resize(batch_size);
164
            for (size_t i = 0; i != batch_size; ++i) {
165
                keys_container[i] = Data::get_key(column, i);
166
            }
167
            return keys_container.data();
168
146
        } else {
169
146
            return assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(column)
170
146
                    .get_data()
171
146
                    .data();
172
146
        }
173
146
    }
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE7ENS_30AggregateFunctionUniqExactDataILS1_7EEEE8get_keysERSt6vectorInSaInEERKNS_7IColumnEm
Line
Count
Source
154
5
                                                 const IColumn& column, size_t batch_size) {
155
        if constexpr (is_string_type(T) || is_varbinary(T)) {
156
            keys_container.resize(batch_size);
157
            for (size_t i = 0; i != batch_size; ++i) {
158
                StringRef value = column.get_data_at(i);
159
                keys_container[i] = Data::get_key(value);
160
            }
161
            return keys_container.data();
162
        } else if constexpr (T == TYPE_ARRAY) {
163
            keys_container.resize(batch_size);
164
            for (size_t i = 0; i != batch_size; ++i) {
165
                keys_container[i] = Data::get_key(column, i);
166
            }
167
            return keys_container.data();
168
5
        } else {
169
5
            return assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(column)
170
5
                    .get_data()
171
5
                    .data();
172
5
        }
173
5
    }
Unexecuted instantiation: _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE28ENS_30AggregateFunctionUniqExactDataILS1_28EEEE8get_keysERSt6vectorINS_7DecimalIiEESaIS7_EERKNS_7IColumnEm
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE29ENS_30AggregateFunctionUniqExactDataILS1_29EEEE8get_keysERSt6vectorINS_7DecimalIlEESaIS7_EERKNS_7IColumnEm
Line
Count
Source
154
5
                                                 const IColumn& column, size_t batch_size) {
155
        if constexpr (is_string_type(T) || is_varbinary(T)) {
156
            keys_container.resize(batch_size);
157
            for (size_t i = 0; i != batch_size; ++i) {
158
                StringRef value = column.get_data_at(i);
159
                keys_container[i] = Data::get_key(value);
160
            }
161
            return keys_container.data();
162
        } else if constexpr (T == TYPE_ARRAY) {
163
            keys_container.resize(batch_size);
164
            for (size_t i = 0; i != batch_size; ++i) {
165
                keys_container[i] = Data::get_key(column, i);
166
            }
167
            return keys_container.data();
168
5
        } else {
169
5
            return assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(column)
170
5
                    .get_data()
171
5
                    .data();
172
5
        }
173
5
    }
Unexecuted instantiation: _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE30ENS_30AggregateFunctionUniqExactDataILS1_30EEEE8get_keysERSt6vectorINS_12Decimal128V3ESaIS6_EERKNS_7IColumnEm
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE35ENS_30AggregateFunctionUniqExactDataILS1_35EEEE8get_keysERSt6vectorINS_7DecimalIN4wide7integerILm256EiEEEESaISA_EERKNS_7IColumnEm
Line
Count
Source
154
11
                                                 const IColumn& column, size_t batch_size) {
155
        if constexpr (is_string_type(T) || is_varbinary(T)) {
156
            keys_container.resize(batch_size);
157
            for (size_t i = 0; i != batch_size; ++i) {
158
                StringRef value = column.get_data_at(i);
159
                keys_container[i] = Data::get_key(value);
160
            }
161
            return keys_container.data();
162
        } else if constexpr (T == TYPE_ARRAY) {
163
            keys_container.resize(batch_size);
164
            for (size_t i = 0; i != batch_size; ++i) {
165
                keys_container[i] = Data::get_key(column, i);
166
            }
167
            return keys_container.data();
168
11
        } else {
169
11
            return assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(column)
170
11
                    .get_data()
171
11
                    .data();
172
11
        }
173
11
    }
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE10ENS_30AggregateFunctionUniqExactDataILS1_10EEEE8get_keysERSt6vectorIN4wide7integerILm128EjEESaIS8_EERKNS_7IColumnEm
Line
Count
Source
154
247
                                                 const IColumn& column, size_t batch_size) {
155
247
        if constexpr (is_string_type(T) || is_varbinary(T)) {
156
247
            keys_container.resize(batch_size);
157
600k
            for (size_t i = 0; i != batch_size; ++i) {
158
600k
                StringRef value = column.get_data_at(i);
159
600k
                keys_container[i] = Data::get_key(value);
160
600k
            }
161
247
            return keys_container.data();
162
        } else if constexpr (T == TYPE_ARRAY) {
163
            keys_container.resize(batch_size);
164
            for (size_t i = 0; i != batch_size; ++i) {
165
                keys_container[i] = Data::get_key(column, i);
166
            }
167
            return keys_container.data();
168
        } else {
169
            return assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(column)
170
                    .get_data()
171
                    .data();
172
        }
173
247
    }
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
154
63
                                                 const IColumn& column, size_t batch_size) {
155
        if constexpr (is_string_type(T) || is_varbinary(T)) {
156
            keys_container.resize(batch_size);
157
            for (size_t i = 0; i != batch_size; ++i) {
158
                StringRef value = column.get_data_at(i);
159
                keys_container[i] = Data::get_key(value);
160
            }
161
            return keys_container.data();
162
        } else if constexpr (T == TYPE_ARRAY) {
163
            keys_container.resize(batch_size);
164
            for (size_t i = 0; i != batch_size; ++i) {
165
                keys_container[i] = Data::get_key(column, i);
166
            }
167
            return keys_container.data();
168
63
        } else {
169
63
            return assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(column)
170
63
                    .get_data()
171
63
                    .data();
172
63
        }
173
63
    }
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE26ENS_30AggregateFunctionUniqExactDataILS1_26EEEE8get_keysERSt6vectorINS_11DateV2ValueINS_19DateTimeV2ValueTypeEEESaIS8_EERKNS_7IColumnEm
Line
Count
Source
154
4
                                                 const IColumn& column, size_t batch_size) {
155
        if constexpr (is_string_type(T) || is_varbinary(T)) {
156
            keys_container.resize(batch_size);
157
            for (size_t i = 0; i != batch_size; ++i) {
158
                StringRef value = column.get_data_at(i);
159
                keys_container[i] = Data::get_key(value);
160
            }
161
            return keys_container.data();
162
        } else if constexpr (T == TYPE_ARRAY) {
163
            keys_container.resize(batch_size);
164
            for (size_t i = 0; i != batch_size; ++i) {
165
                keys_container[i] = Data::get_key(column, i);
166
            }
167
            return keys_container.data();
168
4
        } else {
169
4
            return assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(column)
170
4
                    .get_data()
171
4
                    .data();
172
4
        }
173
4
    }
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE43ENS_30AggregateFunctionUniqExactDataILS1_43EEEE8get_keysERSt6vectorINS_16TimeStampNsValueESaIS6_EERKNS_7IColumnEm
Line
Count
Source
154
3
                                                 const IColumn& column, size_t batch_size) {
155
        if constexpr (is_string_type(T) || is_varbinary(T)) {
156
            keys_container.resize(batch_size);
157
            for (size_t i = 0; i != batch_size; ++i) {
158
                StringRef value = column.get_data_at(i);
159
                keys_container[i] = Data::get_key(value);
160
            }
161
            return keys_container.data();
162
        } else if constexpr (T == TYPE_ARRAY) {
163
            keys_container.resize(batch_size);
164
            for (size_t i = 0; i != batch_size; ++i) {
165
                keys_container[i] = Data::get_key(column, i);
166
            }
167
            return keys_container.data();
168
3
        } else {
169
3
            return assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(column)
170
3
                    .get_data()
171
3
                    .data();
172
3
        }
173
3
    }
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS1_42EEEE8get_keysERSt6vectorINS_16TimestampTzValueESaIS6_EERKNS_7IColumnEm
Line
Count
Source
154
36
                                                 const IColumn& column, size_t batch_size) {
155
        if constexpr (is_string_type(T) || is_varbinary(T)) {
156
            keys_container.resize(batch_size);
157
            for (size_t i = 0; i != batch_size; ++i) {
158
                StringRef value = column.get_data_at(i);
159
                keys_container[i] = Data::get_key(value);
160
            }
161
            return keys_container.data();
162
        } else if constexpr (T == TYPE_ARRAY) {
163
            keys_container.resize(batch_size);
164
            for (size_t i = 0; i != batch_size; ++i) {
165
                keys_container[i] = Data::get_key(column, i);
166
            }
167
            return keys_container.data();
168
36
        } else {
169
36
            return assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(column)
170
36
                    .get_data()
171
36
                    .data();
172
36
        }
173
36
    }
Unexecuted instantiation: _ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS1_41EEEE8get_keysERSt6vectorIN4wide7integerILm128EjEESaIS8_EERKNS_7IColumnEm
_ZN5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE44ENS_30AggregateFunctionUniqExactDataILS1_44EEEE8get_keysERSt6vectorIoSaIoEERKNS_7IColumnEm
Line
Count
Source
154
85
                                                 const IColumn& column, size_t batch_size) {
155
        if constexpr (is_string_type(T) || is_varbinary(T)) {
156
            keys_container.resize(batch_size);
157
            for (size_t i = 0; i != batch_size; ++i) {
158
                StringRef value = column.get_data_at(i);
159
                keys_container[i] = Data::get_key(value);
160
            }
161
            return keys_container.data();
162
        } else if constexpr (T == TYPE_ARRAY) {
163
            keys_container.resize(batch_size);
164
            for (size_t i = 0; i != batch_size; ++i) {
165
                keys_container[i] = Data::get_key(column, i);
166
            }
167
            return keys_container.data();
168
85
        } else {
169
85
            return assert_cast<const typename PrimitiveTypeTraits<T>::ColumnType&>(column)
170
85
                    .get_data()
171
85
                    .data();
172
85
        }
173
85
    }
174
175
    void add_batch(size_t batch_size, AggregateDataPtr* places, size_t place_offset,
176
892
                   const IColumn** columns, Arena&, bool /*agg_many*/) const override {
177
892
        std::vector<KeyType> keys_container;
178
892
        const KeyType* keys = get_keys(keys_container, *columns[0], batch_size);
179
180
892
        std::vector<typename Data::Set*> array_of_data_set(batch_size);
181
182
640k
        for (size_t i = 0; i != batch_size; ++i) {
183
639k
            array_of_data_set[i] = &(this->data(places[i] + place_offset).set);
184
639k
        }
185
186
        // Precompute hash values to avoid double computation in prefetch + insert
187
892
        std::vector<size_t> hash_values(batch_size);
188
640k
        for (size_t i = 0; i < batch_size; ++i) {
189
639k
            hash_values[i] = array_of_data_set[i]->hash(keys[i]);
190
639k
        }
191
192
639k
        for (size_t i = 0; i != batch_size; ++i) {
193
638k
            if (i + HASH_MAP_PREFETCH_DIST < batch_size) {
194
634k
                array_of_data_set[i + HASH_MAP_PREFETCH_DIST]->prefetch_hash(
195
634k
                        hash_values[i + HASH_MAP_PREFETCH_DIST]);
196
634k
            }
197
198
638k
            array_of_data_set[i]->emplace_with_hash(hash_values[i], keys[i]);
199
638k
        }
200
892
    }
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE2ENS_30AggregateFunctionUniqExactDataILS1_2EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE3ENS_30AggregateFunctionUniqExactDataILS1_3EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb
Line
Count
Source
176
4
                   const IColumn** columns, Arena&, bool /*agg_many*/) const override {
177
4
        std::vector<KeyType> keys_container;
178
4
        const KeyType* keys = get_keys(keys_container, *columns[0], batch_size);
179
180
4
        std::vector<typename Data::Set*> array_of_data_set(batch_size);
181
182
10
        for (size_t i = 0; i != batch_size; ++i) {
183
6
            array_of_data_set[i] = &(this->data(places[i] + place_offset).set);
184
6
        }
185
186
        // Precompute hash values to avoid double computation in prefetch + insert
187
4
        std::vector<size_t> hash_values(batch_size);
188
10
        for (size_t i = 0; i < batch_size; ++i) {
189
6
            hash_values[i] = array_of_data_set[i]->hash(keys[i]);
190
6
        }
191
192
10
        for (size_t i = 0; i != batch_size; ++i) {
193
6
            if (i + HASH_MAP_PREFETCH_DIST < batch_size) {
194
0
                array_of_data_set[i + HASH_MAP_PREFETCH_DIST]->prefetch_hash(
195
0
                        hash_values[i + HASH_MAP_PREFETCH_DIST]);
196
0
            }
197
198
6
            array_of_data_set[i]->emplace_with_hash(hash_values[i], keys[i]);
199
6
        }
200
4
    }
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE4ENS_30AggregateFunctionUniqExactDataILS1_4EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE5ENS_30AggregateFunctionUniqExactDataILS1_5EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb
Line
Count
Source
176
436
                   const IColumn** columns, Arena&, bool /*agg_many*/) const override {
177
436
        std::vector<KeyType> keys_container;
178
436
        const KeyType* keys = get_keys(keys_container, *columns[0], batch_size);
179
180
436
        std::vector<typename Data::Set*> array_of_data_set(batch_size);
181
182
38.2k
        for (size_t i = 0; i != batch_size; ++i) {
183
37.8k
            array_of_data_set[i] = &(this->data(places[i] + place_offset).set);
184
37.8k
        }
185
186
        // Precompute hash values to avoid double computation in prefetch + insert
187
436
        std::vector<size_t> hash_values(batch_size);
188
38.2k
        for (size_t i = 0; i < batch_size; ++i) {
189
37.8k
            hash_values[i] = array_of_data_set[i]->hash(keys[i]);
190
37.8k
        }
191
192
38.2k
        for (size_t i = 0; i != batch_size; ++i) {
193
37.8k
            if (i + HASH_MAP_PREFETCH_DIST < batch_size) {
194
35.7k
                array_of_data_set[i + HASH_MAP_PREFETCH_DIST]->prefetch_hash(
195
35.7k
                        hash_values[i + HASH_MAP_PREFETCH_DIST]);
196
35.7k
            }
197
198
37.8k
            array_of_data_set[i]->emplace_with_hash(hash_values[i], keys[i]);
199
37.8k
        }
200
436
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE6ENS_30AggregateFunctionUniqExactDataILS1_6EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb
Line
Count
Source
176
84
                   const IColumn** columns, Arena&, bool /*agg_many*/) const override {
177
84
        std::vector<KeyType> keys_container;
178
84
        const KeyType* keys = get_keys(keys_container, *columns[0], batch_size);
179
180
84
        std::vector<typename Data::Set*> array_of_data_set(batch_size);
181
182
274
        for (size_t i = 0; i != batch_size; ++i) {
183
190
            array_of_data_set[i] = &(this->data(places[i] + place_offset).set);
184
190
        }
185
186
        // Precompute hash values to avoid double computation in prefetch + insert
187
84
        std::vector<size_t> hash_values(batch_size);
188
274
        for (size_t i = 0; i < batch_size; ++i) {
189
190
            hash_values[i] = array_of_data_set[i]->hash(keys[i]);
190
190
        }
191
192
275
        for (size_t i = 0; i != batch_size; ++i) {
193
191
            if (i + HASH_MAP_PREFETCH_DIST < batch_size) {
194
0
                array_of_data_set[i + HASH_MAP_PREFETCH_DIST]->prefetch_hash(
195
0
                        hash_values[i + HASH_MAP_PREFETCH_DIST]);
196
0
            }
197
198
191
            array_of_data_set[i]->emplace_with_hash(hash_values[i], keys[i]);
199
191
        }
200
84
    }
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
176
5
                   const IColumn** columns, Arena&, bool /*agg_many*/) const override {
177
5
        std::vector<KeyType> keys_container;
178
5
        const KeyType* keys = get_keys(keys_container, *columns[0], batch_size);
179
180
5
        std::vector<typename Data::Set*> array_of_data_set(batch_size);
181
182
35
        for (size_t i = 0; i != batch_size; ++i) {
183
30
            array_of_data_set[i] = &(this->data(places[i] + place_offset).set);
184
30
        }
185
186
        // Precompute hash values to avoid double computation in prefetch + insert
187
5
        std::vector<size_t> hash_values(batch_size);
188
35
        for (size_t i = 0; i < batch_size; ++i) {
189
30
            hash_values[i] = array_of_data_set[i]->hash(keys[i]);
190
30
        }
191
192
35
        for (size_t i = 0; i != batch_size; ++i) {
193
30
            if (i + HASH_MAP_PREFETCH_DIST < batch_size) {
194
0
                array_of_data_set[i + HASH_MAP_PREFETCH_DIST]->prefetch_hash(
195
0
                        hash_values[i + HASH_MAP_PREFETCH_DIST]);
196
0
            }
197
198
30
            array_of_data_set[i]->emplace_with_hash(hash_values[i], keys[i]);
199
30
        }
200
5
    }
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE30ENS_30AggregateFunctionUniqExactDataILS1_30EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE35ENS_30AggregateFunctionUniqExactDataILS1_35EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb
Line
Count
Source
176
11
                   const IColumn** columns, Arena&, bool /*agg_many*/) const override {
177
11
        std::vector<KeyType> keys_container;
178
11
        const KeyType* keys = get_keys(keys_container, *columns[0], batch_size);
179
180
11
        std::vector<typename Data::Set*> array_of_data_set(batch_size);
181
182
65
        for (size_t i = 0; i != batch_size; ++i) {
183
54
            array_of_data_set[i] = &(this->data(places[i] + place_offset).set);
184
54
        }
185
186
        // Precompute hash values to avoid double computation in prefetch + insert
187
11
        std::vector<size_t> hash_values(batch_size);
188
65
        for (size_t i = 0; i < batch_size; ++i) {
189
54
            hash_values[i] = array_of_data_set[i]->hash(keys[i]);
190
54
        }
191
192
65
        for (size_t i = 0; i != batch_size; ++i) {
193
54
            if (i + HASH_MAP_PREFETCH_DIST < batch_size) {
194
0
                array_of_data_set[i + HASH_MAP_PREFETCH_DIST]->prefetch_hash(
195
0
                        hash_values[i + HASH_MAP_PREFETCH_DIST]);
196
0
            }
197
198
54
            array_of_data_set[i]->emplace_with_hash(hash_values[i], keys[i]);
199
54
        }
200
11
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE10ENS_30AggregateFunctionUniqExactDataILS1_10EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb
Line
Count
Source
176
245
                   const IColumn** columns, Arena&, bool /*agg_many*/) const override {
177
245
        std::vector<KeyType> keys_container;
178
245
        const KeyType* keys = get_keys(keys_container, *columns[0], batch_size);
179
180
245
        std::vector<typename Data::Set*> array_of_data_set(batch_size);
181
182
600k
        for (size_t i = 0; i != batch_size; ++i) {
183
600k
            array_of_data_set[i] = &(this->data(places[i] + place_offset).set);
184
600k
        }
185
186
        // Precompute hash values to avoid double computation in prefetch + insert
187
245
        std::vector<size_t> hash_values(batch_size);
188
600k
        for (size_t i = 0; i < batch_size; ++i) {
189
600k
            hash_values[i] = array_of_data_set[i]->hash(keys[i]);
190
600k
        }
191
192
599k
        for (size_t i = 0; i != batch_size; ++i) {
193
599k
            if (i + HASH_MAP_PREFETCH_DIST < batch_size) {
194
597k
                array_of_data_set[i + HASH_MAP_PREFETCH_DIST]->prefetch_hash(
195
597k
                        hash_values[i + HASH_MAP_PREFETCH_DIST]);
196
597k
            }
197
198
599k
            array_of_data_set[i]->emplace_with_hash(hash_values[i], keys[i]);
199
599k
        }
200
245
    }
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
176
63
                   const IColumn** columns, Arena&, bool /*agg_many*/) const override {
177
63
        std::vector<KeyType> keys_container;
178
63
        const KeyType* keys = get_keys(keys_container, *columns[0], batch_size);
179
180
63
        std::vector<typename Data::Set*> array_of_data_set(batch_size);
181
182
1.11k
        for (size_t i = 0; i != batch_size; ++i) {
183
1.05k
            array_of_data_set[i] = &(this->data(places[i] + place_offset).set);
184
1.05k
        }
185
186
        // Precompute hash values to avoid double computation in prefetch + insert
187
63
        std::vector<size_t> hash_values(batch_size);
188
1.11k
        for (size_t i = 0; i < batch_size; ++i) {
189
1.05k
            hash_values[i] = array_of_data_set[i]->hash(keys[i]);
190
1.05k
        }
191
192
1.11k
        for (size_t i = 0; i != batch_size; ++i) {
193
1.05k
            if (i + HASH_MAP_PREFETCH_DIST < batch_size) {
194
617
                array_of_data_set[i + HASH_MAP_PREFETCH_DIST]->prefetch_hash(
195
617
                        hash_values[i + HASH_MAP_PREFETCH_DIST]);
196
617
            }
197
198
1.05k
            array_of_data_set[i]->emplace_with_hash(hash_values[i], keys[i]);
199
1.05k
        }
200
63
    }
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE26ENS_30AggregateFunctionUniqExactDataILS1_26EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE43ENS_30AggregateFunctionUniqExactDataILS1_43EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb
Line
Count
Source
176
1
                   const IColumn** columns, Arena&, bool /*agg_many*/) const override {
177
1
        std::vector<KeyType> keys_container;
178
1
        const KeyType* keys = get_keys(keys_container, *columns[0], batch_size);
179
180
1
        std::vector<typename Data::Set*> array_of_data_set(batch_size);
181
182
4
        for (size_t i = 0; i != batch_size; ++i) {
183
3
            array_of_data_set[i] = &(this->data(places[i] + place_offset).set);
184
3
        }
185
186
        // Precompute hash values to avoid double computation in prefetch + insert
187
1
        std::vector<size_t> hash_values(batch_size);
188
4
        for (size_t i = 0; i < batch_size; ++i) {
189
3
            hash_values[i] = array_of_data_set[i]->hash(keys[i]);
190
3
        }
191
192
4
        for (size_t i = 0; i != batch_size; ++i) {
193
3
            if (i + HASH_MAP_PREFETCH_DIST < batch_size) {
194
0
                array_of_data_set[i + HASH_MAP_PREFETCH_DIST]->prefetch_hash(
195
0
                        hash_values[i + HASH_MAP_PREFETCH_DIST]);
196
0
            }
197
198
3
            array_of_data_set[i]->emplace_with_hash(hash_values[i], keys[i]);
199
3
        }
200
1
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS1_42EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb
Line
Count
Source
176
36
                   const IColumn** columns, Arena&, bool /*agg_many*/) const override {
177
36
        std::vector<KeyType> keys_container;
178
36
        const KeyType* keys = get_keys(keys_container, *columns[0], batch_size);
179
180
36
        std::vector<typename Data::Set*> array_of_data_set(batch_size);
181
182
106
        for (size_t i = 0; i != batch_size; ++i) {
183
70
            array_of_data_set[i] = &(this->data(places[i] + place_offset).set);
184
70
        }
185
186
        // Precompute hash values to avoid double computation in prefetch + insert
187
36
        std::vector<size_t> hash_values(batch_size);
188
106
        for (size_t i = 0; i < batch_size; ++i) {
189
70
            hash_values[i] = array_of_data_set[i]->hash(keys[i]);
190
70
        }
191
192
106
        for (size_t i = 0; i != batch_size; ++i) {
193
70
            if (i + HASH_MAP_PREFETCH_DIST < batch_size) {
194
0
                array_of_data_set[i + HASH_MAP_PREFETCH_DIST]->prefetch_hash(
195
0
                        hash_values[i + HASH_MAP_PREFETCH_DIST]);
196
0
            }
197
198
70
            array_of_data_set[i]->emplace_with_hash(hash_values[i], keys[i]);
199
70
        }
200
36
    }
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS1_41EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE44ENS_30AggregateFunctionUniqExactDataILS1_44EEEE9add_batchEmPPcmPPKNS_7IColumnERNS_5ArenaEb
Line
Count
Source
176
7
                   const IColumn** columns, Arena&, bool /*agg_many*/) const override {
177
7
        std::vector<KeyType> keys_container;
178
7
        const KeyType* keys = get_keys(keys_container, *columns[0], batch_size);
179
180
7
        std::vector<typename Data::Set*> array_of_data_set(batch_size);
181
182
21
        for (size_t i = 0; i != batch_size; ++i) {
183
14
            array_of_data_set[i] = &(this->data(places[i] + place_offset).set);
184
14
        }
185
186
        // Precompute hash values to avoid double computation in prefetch + insert
187
7
        std::vector<size_t> hash_values(batch_size);
188
21
        for (size_t i = 0; i < batch_size; ++i) {
189
14
            hash_values[i] = array_of_data_set[i]->hash(keys[i]);
190
14
        }
191
192
21
        for (size_t i = 0; i != batch_size; ++i) {
193
14
            if (i + HASH_MAP_PREFETCH_DIST < batch_size) {
194
0
                array_of_data_set[i + HASH_MAP_PREFETCH_DIST]->prefetch_hash(
195
0
                        hash_values[i + HASH_MAP_PREFETCH_DIST]);
196
0
            }
197
198
14
            array_of_data_set[i]->emplace_with_hash(hash_values[i], keys[i]);
199
14
        }
200
7
    }
201
202
    void merge(AggregateDataPtr __restrict place, ConstAggregateDataPtr rhs,
203
42.0k
               Arena&) const override {
204
42.0k
        auto& rhs_set = this->data(rhs).set;
205
42.0k
        if (rhs_set.size() == 0) return;
206
207
42.0k
        auto& set = this->data(place).set;
208
42.0k
        set.rehash(set.size() + rhs_set.size());
209
210
519k
        for (auto elem : rhs_set) {
211
519k
            set.insert(elem);
212
519k
        }
213
42.0k
    }
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
203
42.0k
               Arena&) const override {
204
42.0k
        auto& rhs_set = this->data(rhs).set;
205
42.0k
        if (rhs_set.size() == 0) return;
206
207
42.0k
        auto& set = this->data(place).set;
208
42.0k
        set.rehash(set.size() + rhs_set.size());
209
210
519k
        for (auto elem : rhs_set) {
211
519k
            set.insert(elem);
212
519k
        }
213
42.0k
    }
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_13PrimitiveTypeE43ENS_30AggregateFunctionUniqExactDataILS1_43EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS1_42EEEE5mergeEPcPKcRNS_5ArenaE
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS1_41EEEE5mergeEPcPKcRNS_5ArenaE
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE44ENS_30AggregateFunctionUniqExactDataILS1_44EEEE5mergeEPcPKcRNS_5ArenaE
Line
Count
Source
203
1
               Arena&) const override {
204
1
        auto& rhs_set = this->data(rhs).set;
205
1
        if (rhs_set.size() == 0) return;
206
207
1
        auto& set = this->data(place).set;
208
1
        set.rehash(set.size() + rhs_set.size());
209
210
1
        for (auto elem : rhs_set) {
211
1
            set.insert(elem);
212
1
        }
213
1
    }
214
215
    void add_batch_single_place(size_t batch_size, AggregateDataPtr place, const IColumn** columns,
216
367
                                Arena&) const override {
217
367
        std::vector<KeyType> keys_container;
218
367
        const KeyType* keys = get_keys(keys_container, *columns[0], batch_size);
219
367
        auto& set = this->data(place).set;
220
221
        // Precompute hash values to avoid double computation in prefetch + insert
222
367
        std::vector<size_t> hash_values(batch_size);
223
76.6k
        for (size_t i = 0; i < batch_size; ++i) {
224
76.3k
            hash_values[i] = set.hash(keys[i]);
225
76.3k
        }
226
227
76.6k
        for (size_t i = 0; i != batch_size; ++i) {
228
76.3k
            if (i + HASH_MAP_PREFETCH_DIST < batch_size) {
229
74.2k
                set.prefetch_hash(hash_values[i + HASH_MAP_PREFETCH_DIST]);
230
74.2k
            }
231
76.3k
            set.emplace_with_hash(hash_values[i], keys[i]);
232
76.3k
        }
233
367
    }
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE2ENS_30AggregateFunctionUniqExactDataILS1_2EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE3ENS_30AggregateFunctionUniqExactDataILS1_3EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE
Line
Count
Source
216
12
                                Arena&) const override {
217
12
        std::vector<KeyType> keys_container;
218
12
        const KeyType* keys = get_keys(keys_container, *columns[0], batch_size);
219
12
        auto& set = this->data(place).set;
220
221
        // Precompute hash values to avoid double computation in prefetch + insert
222
12
        std::vector<size_t> hash_values(batch_size);
223
39
        for (size_t i = 0; i < batch_size; ++i) {
224
27
            hash_values[i] = set.hash(keys[i]);
225
27
        }
226
227
39
        for (size_t i = 0; i != batch_size; ++i) {
228
27
            if (i + HASH_MAP_PREFETCH_DIST < batch_size) {
229
0
                set.prefetch_hash(hash_values[i + HASH_MAP_PREFETCH_DIST]);
230
0
            }
231
27
            set.emplace_with_hash(hash_values[i], keys[i]);
232
27
        }
233
12
    }
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE4ENS_30AggregateFunctionUniqExactDataILS1_4EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE5ENS_30AggregateFunctionUniqExactDataILS1_5EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE
Line
Count
Source
216
203
                                Arena&) const override {
217
203
        std::vector<KeyType> keys_container;
218
203
        const KeyType* keys = get_keys(keys_container, *columns[0], batch_size);
219
203
        auto& set = this->data(place).set;
220
221
        // Precompute hash values to avoid double computation in prefetch + insert
222
203
        std::vector<size_t> hash_values(batch_size);
223
1.20k
        for (size_t i = 0; i < batch_size; ++i) {
224
1.00k
            hash_values[i] = set.hash(keys[i]);
225
1.00k
        }
226
227
1.20k
        for (size_t i = 0; i != batch_size; ++i) {
228
1.00k
            if (i + HASH_MAP_PREFETCH_DIST < batch_size) {
229
274
                set.prefetch_hash(hash_values[i + HASH_MAP_PREFETCH_DIST]);
230
274
            }
231
1.00k
            set.emplace_with_hash(hash_values[i], keys[i]);
232
1.00k
        }
233
203
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE6ENS_30AggregateFunctionUniqExactDataILS1_6EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE
Line
Count
Source
216
62
                                Arena&) const override {
217
62
        std::vector<KeyType> keys_container;
218
62
        const KeyType* keys = get_keys(keys_container, *columns[0], batch_size);
219
62
        auto& set = this->data(place).set;
220
221
        // Precompute hash values to avoid double computation in prefetch + insert
222
62
        std::vector<size_t> hash_values(batch_size);
223
50.1k
        for (size_t i = 0; i < batch_size; ++i) {
224
50.1k
            hash_values[i] = set.hash(keys[i]);
225
50.1k
        }
226
227
50.1k
        for (size_t i = 0; i != batch_size; ++i) {
228
50.1k
            if (i + HASH_MAP_PREFETCH_DIST < batch_size) {
229
49.8k
                set.prefetch_hash(hash_values[i + HASH_MAP_PREFETCH_DIST]);
230
49.8k
            }
231
50.1k
            set.emplace_with_hash(hash_values[i], keys[i]);
232
50.1k
        }
233
62
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE7ENS_30AggregateFunctionUniqExactDataILS1_7EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE
Line
Count
Source
216
5
                                Arena&) const override {
217
5
        std::vector<KeyType> keys_container;
218
5
        const KeyType* keys = get_keys(keys_container, *columns[0], batch_size);
219
5
        auto& set = this->data(place).set;
220
221
        // Precompute hash values to avoid double computation in prefetch + insert
222
5
        std::vector<size_t> hash_values(batch_size);
223
11
        for (size_t i = 0; i < batch_size; ++i) {
224
6
            hash_values[i] = set.hash(keys[i]);
225
6
        }
226
227
11
        for (size_t i = 0; i != batch_size; ++i) {
228
6
            if (i + HASH_MAP_PREFETCH_DIST < batch_size) {
229
0
                set.prefetch_hash(hash_values[i + HASH_MAP_PREFETCH_DIST]);
230
0
            }
231
6
            set.emplace_with_hash(hash_values[i], keys[i]);
232
6
        }
233
5
    }
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
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE10ENS_30AggregateFunctionUniqExactDataILS1_10EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE
Line
Count
Source
216
1
                                Arena&) const override {
217
1
        std::vector<KeyType> keys_container;
218
1
        const KeyType* keys = get_keys(keys_container, *columns[0], batch_size);
219
1
        auto& set = this->data(place).set;
220
221
        // Precompute hash values to avoid double computation in prefetch + insert
222
1
        std::vector<size_t> hash_values(batch_size);
223
11
        for (size_t i = 0; i < batch_size; ++i) {
224
10
            hash_values[i] = set.hash(keys[i]);
225
10
        }
226
227
11
        for (size_t i = 0; i != batch_size; ++i) {
228
10
            if (i + HASH_MAP_PREFETCH_DIST < batch_size) {
229
0
                set.prefetch_hash(hash_values[i + HASH_MAP_PREFETCH_DIST]);
230
0
            }
231
10
            set.emplace_with_hash(hash_values[i], keys[i]);
232
10
        }
233
1
    }
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
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE26ENS_30AggregateFunctionUniqExactDataILS1_26EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE
Line
Count
Source
216
4
                                Arena&) const override {
217
4
        std::vector<KeyType> keys_container;
218
4
        const KeyType* keys = get_keys(keys_container, *columns[0], batch_size);
219
4
        auto& set = this->data(place).set;
220
221
        // Precompute hash values to avoid double computation in prefetch + insert
222
4
        std::vector<size_t> hash_values(batch_size);
223
16
        for (size_t i = 0; i < batch_size; ++i) {
224
12
            hash_values[i] = set.hash(keys[i]);
225
12
        }
226
227
16
        for (size_t i = 0; i != batch_size; ++i) {
228
12
            if (i + HASH_MAP_PREFETCH_DIST < batch_size) {
229
0
                set.prefetch_hash(hash_values[i + HASH_MAP_PREFETCH_DIST]);
230
0
            }
231
12
            set.emplace_with_hash(hash_values[i], keys[i]);
232
12
        }
233
4
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE43ENS_30AggregateFunctionUniqExactDataILS1_43EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE
Line
Count
Source
216
2
                                Arena&) const override {
217
2
        std::vector<KeyType> keys_container;
218
2
        const KeyType* keys = get_keys(keys_container, *columns[0], batch_size);
219
2
        auto& set = this->data(place).set;
220
221
        // Precompute hash values to avoid double computation in prefetch + insert
222
2
        std::vector<size_t> hash_values(batch_size);
223
8
        for (size_t i = 0; i < batch_size; ++i) {
224
6
            hash_values[i] = set.hash(keys[i]);
225
6
        }
226
227
8
        for (size_t i = 0; i != batch_size; ++i) {
228
6
            if (i + HASH_MAP_PREFETCH_DIST < batch_size) {
229
0
                set.prefetch_hash(hash_values[i + HASH_MAP_PREFETCH_DIST]);
230
0
            }
231
6
            set.emplace_with_hash(hash_values[i], keys[i]);
232
6
        }
233
2
    }
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS1_42EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS1_41EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE44ENS_30AggregateFunctionUniqExactDataILS1_44EEEE22add_batch_single_placeEmPcPPKNS_7IColumnERNS_5ArenaE
Line
Count
Source
216
78
                                Arena&) const override {
217
78
        std::vector<KeyType> keys_container;
218
78
        const KeyType* keys = get_keys(keys_container, *columns[0], batch_size);
219
78
        auto& set = this->data(place).set;
220
221
        // Precompute hash values to avoid double computation in prefetch + insert
222
78
        std::vector<size_t> hash_values(batch_size);
223
25.2k
        for (size_t i = 0; i < batch_size; ++i) {
224
25.1k
            hash_values[i] = set.hash(keys[i]);
225
25.1k
        }
226
227
25.1k
        for (size_t i = 0; i != batch_size; ++i) {
228
25.1k
            if (i + HASH_MAP_PREFETCH_DIST < batch_size) {
229
24.1k
                set.prefetch_hash(hash_values[i + HASH_MAP_PREFETCH_DIST]);
230
24.1k
            }
231
25.1k
            set.emplace_with_hash(hash_values[i], keys[i]);
232
25.1k
        }
233
78
    }
234
235
10.4k
    void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override {
236
10.4k
        auto& set = this->data(place).set;
237
10.4k
        buf.write_var_uint(set.size());
238
36.7k
        for (const auto& elem : set) {
239
36.7k
            buf.write_binary(elem);
240
36.7k
        }
241
10.4k
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE2ENS_30AggregateFunctionUniqExactDataILS1_2EEEE9serializeEPKcRNS_14BufferWritableE
Line
Count
Source
235
11
    void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override {
236
11
        auto& set = this->data(place).set;
237
11
        buf.write_var_uint(set.size());
238
11
        for (const auto& elem : set) {
239
11
            buf.write_binary(elem);
240
11
        }
241
11
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE3ENS_30AggregateFunctionUniqExactDataILS1_3EEEE9serializeEPKcRNS_14BufferWritableE
Line
Count
Source
235
6
    void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override {
236
6
        auto& set = this->data(place).set;
237
6
        buf.write_var_uint(set.size());
238
6
        for (const auto& elem : set) {
239
6
            buf.write_binary(elem);
240
6
        }
241
6
    }
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE4ENS_30AggregateFunctionUniqExactDataILS1_4EEEE9serializeEPKcRNS_14BufferWritableE
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE5ENS_30AggregateFunctionUniqExactDataILS1_5EEEE9serializeEPKcRNS_14BufferWritableE
Line
Count
Source
235
9.04k
    void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override {
236
9.04k
        auto& set = this->data(place).set;
237
9.04k
        buf.write_var_uint(set.size());
238
35.4k
        for (const auto& elem : set) {
239
35.4k
            buf.write_binary(elem);
240
35.4k
        }
241
9.04k
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE6ENS_30AggregateFunctionUniqExactDataILS1_6EEEE9serializeEPKcRNS_14BufferWritableE
Line
Count
Source
235
76
    void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override {
236
76
        auto& set = this->data(place).set;
237
76
        buf.write_var_uint(set.size());
238
80
        for (const auto& elem : set) {
239
80
            buf.write_binary(elem);
240
80
        }
241
76
    }
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE7ENS_30AggregateFunctionUniqExactDataILS1_7EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE28ENS_30AggregateFunctionUniqExactDataILS1_28EEEE9serializeEPKcRNS_14BufferWritableE
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE29ENS_30AggregateFunctionUniqExactDataILS1_29EEEE9serializeEPKcRNS_14BufferWritableE
Line
Count
Source
235
11
    void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override {
236
11
        auto& set = this->data(place).set;
237
11
        buf.write_var_uint(set.size());
238
24
        for (const auto& elem : set) {
239
24
            buf.write_binary(elem);
240
24
        }
241
11
    }
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE30ENS_30AggregateFunctionUniqExactDataILS1_30EEEE9serializeEPKcRNS_14BufferWritableE
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE35ENS_30AggregateFunctionUniqExactDataILS1_35EEEE9serializeEPKcRNS_14BufferWritableE
Line
Count
Source
235
10
    void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override {
236
10
        auto& set = this->data(place).set;
237
10
        buf.write_var_uint(set.size());
238
20
        for (const auto& elem : set) {
239
20
            buf.write_binary(elem);
240
20
        }
241
10
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE10ENS_30AggregateFunctionUniqExactDataILS1_10EEEE9serializeEPKcRNS_14BufferWritableE
Line
Count
Source
235
852
    void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override {
236
852
        auto& set = this->data(place).set;
237
852
        buf.write_var_uint(set.size());
238
852
        for (const auto& elem : set) {
239
672
            buf.write_binary(elem);
240
672
        }
241
852
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE17ENS_30AggregateFunctionUniqExactDataILS1_17EEEE9serializeEPKcRNS_14BufferWritableE
Line
Count
Source
235
1
    void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override {
236
1
        auto& set = this->data(place).set;
237
1
        buf.write_var_uint(set.size());
238
6
        for (const auto& elem : set) {
239
6
            buf.write_binary(elem);
240
6
        }
241
1
    }
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE8ENS_30AggregateFunctionUniqExactDataILS1_8EEEE9serializeEPKcRNS_14BufferWritableE
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE9ENS_30AggregateFunctionUniqExactDataILS1_9EEEE9serializeEPKcRNS_14BufferWritableE
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE25ENS_30AggregateFunctionUniqExactDataILS1_25EEEE9serializeEPKcRNS_14BufferWritableE
Line
Count
Source
235
85
    void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override {
236
85
        auto& set = this->data(place).set;
237
85
        buf.write_var_uint(set.size());
238
88
        for (const auto& elem : set) {
239
88
            buf.write_binary(elem);
240
88
        }
241
85
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE26ENS_30AggregateFunctionUniqExactDataILS1_26EEEE9serializeEPKcRNS_14BufferWritableE
Line
Count
Source
235
1
    void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override {
236
1
        auto& set = this->data(place).set;
237
1
        buf.write_var_uint(set.size());
238
12
        for (const auto& elem : set) {
239
12
            buf.write_binary(elem);
240
12
        }
241
1
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE43ENS_30AggregateFunctionUniqExactDataILS1_43EEEE9serializeEPKcRNS_14BufferWritableE
Line
Count
Source
235
6
    void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override {
236
6
        auto& set = this->data(place).set;
237
6
        buf.write_var_uint(set.size());
238
8
        for (const auto& elem : set) {
239
8
            buf.write_binary(elem);
240
8
        }
241
6
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS1_42EEEE9serializeEPKcRNS_14BufferWritableE
Line
Count
Source
235
42
    void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override {
236
42
        auto& set = this->data(place).set;
237
42
        buf.write_var_uint(set.size());
238
68
        for (const auto& elem : set) {
239
68
            buf.write_binary(elem);
240
68
        }
241
42
    }
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS1_41EEEE9serializeEPKcRNS_14BufferWritableE
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE44ENS_30AggregateFunctionUniqExactDataILS1_44EEEE9serializeEPKcRNS_14BufferWritableE
Line
Count
Source
235
253
    void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override {
236
253
        auto& set = this->data(place).set;
237
253
        buf.write_var_uint(set.size());
238
274
        for (const auto& elem : set) {
239
274
            buf.write_binary(elem);
240
274
        }
241
253
    }
242
243
    void deserialize_and_merge(AggregateDataPtr __restrict place, AggregateDataPtr __restrict rhs,
244
10.2k
                               BufferReadable& buf, Arena&) const override {
245
10.2k
        auto& set = this->data(place).set;
246
10.2k
        UInt64 size;
247
10.2k
        buf.read_var_uint(size);
248
249
10.2k
        set.rehash(size + set.size());
250
251
46.9k
        for (size_t i = 0; i < size; ++i) {
252
36.6k
            KeyType ref;
253
36.6k
            buf.read_binary(ref);
254
36.6k
            set.insert(ref);
255
36.6k
        }
256
10.2k
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE2ENS_30AggregateFunctionUniqExactDataILS1_2EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE
Line
Count
Source
244
11
                               BufferReadable& buf, Arena&) const override {
245
11
        auto& set = this->data(place).set;
246
11
        UInt64 size;
247
11
        buf.read_var_uint(size);
248
249
11
        set.rehash(size + set.size());
250
251
22
        for (size_t i = 0; i < size; ++i) {
252
11
            KeyType ref;
253
11
            buf.read_binary(ref);
254
11
            set.insert(ref);
255
11
        }
256
11
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE3ENS_30AggregateFunctionUniqExactDataILS1_3EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE
Line
Count
Source
244
6
                               BufferReadable& buf, Arena&) const override {
245
6
        auto& set = this->data(place).set;
246
6
        UInt64 size;
247
6
        buf.read_var_uint(size);
248
249
6
        set.rehash(size + set.size());
250
251
12
        for (size_t i = 0; i < size; ++i) {
252
6
            KeyType ref;
253
6
            buf.read_binary(ref);
254
6
            set.insert(ref);
255
6
        }
256
6
    }
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE4ENS_30AggregateFunctionUniqExactDataILS1_4EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE5ENS_30AggregateFunctionUniqExactDataILS1_5EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE
Line
Count
Source
244
9.01k
                               BufferReadable& buf, Arena&) const override {
245
9.01k
        auto& set = this->data(place).set;
246
9.01k
        UInt64 size;
247
9.01k
        buf.read_var_uint(size);
248
249
9.01k
        set.rehash(size + set.size());
250
251
44.5k
        for (size_t i = 0; i < size; ++i) {
252
35.5k
            KeyType ref;
253
35.5k
            buf.read_binary(ref);
254
35.5k
            set.insert(ref);
255
35.5k
        }
256
9.01k
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE6ENS_30AggregateFunctionUniqExactDataILS1_6EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE
Line
Count
Source
244
76
                               BufferReadable& buf, Arena&) const override {
245
76
        auto& set = this->data(place).set;
246
76
        UInt64 size;
247
76
        buf.read_var_uint(size);
248
249
76
        set.rehash(size + set.size());
250
251
156
        for (size_t i = 0; i < size; ++i) {
252
80
            KeyType ref;
253
80
            buf.read_binary(ref);
254
80
            set.insert(ref);
255
80
        }
256
76
    }
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
244
11
                               BufferReadable& buf, Arena&) const override {
245
11
        auto& set = this->data(place).set;
246
11
        UInt64 size;
247
11
        buf.read_var_uint(size);
248
249
11
        set.rehash(size + set.size());
250
251
35
        for (size_t i = 0; i < size; ++i) {
252
24
            KeyType ref;
253
24
            buf.read_binary(ref);
254
24
            set.insert(ref);
255
24
        }
256
11
    }
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE30ENS_30AggregateFunctionUniqExactDataILS1_30EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE35ENS_30AggregateFunctionUniqExactDataILS1_35EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE
Line
Count
Source
244
10
                               BufferReadable& buf, Arena&) const override {
245
10
        auto& set = this->data(place).set;
246
10
        UInt64 size;
247
10
        buf.read_var_uint(size);
248
249
10
        set.rehash(size + set.size());
250
251
30
        for (size_t i = 0; i < size; ++i) {
252
20
            KeyType ref;
253
20
            buf.read_binary(ref);
254
20
            set.insert(ref);
255
20
        }
256
10
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE10ENS_30AggregateFunctionUniqExactDataILS1_10EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE
Line
Count
Source
244
749
                               BufferReadable& buf, Arena&) const override {
245
749
        auto& set = this->data(place).set;
246
749
        UInt64 size;
247
749
        buf.read_var_uint(size);
248
249
749
        set.rehash(size + set.size());
250
251
1.30k
        for (size_t i = 0; i < size; ++i) {
252
557
            KeyType ref;
253
557
            buf.read_binary(ref);
254
557
            set.insert(ref);
255
557
        }
256
749
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE17ENS_30AggregateFunctionUniqExactDataILS1_17EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE
Line
Count
Source
244
1
                               BufferReadable& buf, Arena&) const override {
245
1
        auto& set = this->data(place).set;
246
1
        UInt64 size;
247
1
        buf.read_var_uint(size);
248
249
1
        set.rehash(size + set.size());
250
251
7
        for (size_t i = 0; i < size; ++i) {
252
6
            KeyType ref;
253
6
            buf.read_binary(ref);
254
6
            set.insert(ref);
255
6
        }
256
1
    }
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
244
85
                               BufferReadable& buf, Arena&) const override {
245
85
        auto& set = this->data(place).set;
246
85
        UInt64 size;
247
85
        buf.read_var_uint(size);
248
249
85
        set.rehash(size + set.size());
250
251
173
        for (size_t i = 0; i < size; ++i) {
252
88
            KeyType ref;
253
88
            buf.read_binary(ref);
254
88
            set.insert(ref);
255
88
        }
256
85
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE26ENS_30AggregateFunctionUniqExactDataILS1_26EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE
Line
Count
Source
244
1
                               BufferReadable& buf, Arena&) const override {
245
1
        auto& set = this->data(place).set;
246
1
        UInt64 size;
247
1
        buf.read_var_uint(size);
248
249
1
        set.rehash(size + set.size());
250
251
13
        for (size_t i = 0; i < size; ++i) {
252
12
            KeyType ref;
253
12
            buf.read_binary(ref);
254
12
            set.insert(ref);
255
12
        }
256
1
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE43ENS_30AggregateFunctionUniqExactDataILS1_43EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE
Line
Count
Source
244
6
                               BufferReadable& buf, Arena&) const override {
245
6
        auto& set = this->data(place).set;
246
6
        UInt64 size;
247
6
        buf.read_var_uint(size);
248
249
6
        set.rehash(size + set.size());
250
251
14
        for (size_t i = 0; i < size; ++i) {
252
8
            KeyType ref;
253
8
            buf.read_binary(ref);
254
8
            set.insert(ref);
255
8
        }
256
6
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS1_42EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE
Line
Count
Source
244
42
                               BufferReadable& buf, Arena&) const override {
245
42
        auto& set = this->data(place).set;
246
42
        UInt64 size;
247
42
        buf.read_var_uint(size);
248
249
42
        set.rehash(size + set.size());
250
251
110
        for (size_t i = 0; i < size; ++i) {
252
68
            KeyType ref;
253
68
            buf.read_binary(ref);
254
68
            set.insert(ref);
255
68
        }
256
42
    }
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS1_41EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE44ENS_30AggregateFunctionUniqExactDataILS1_44EEEE21deserialize_and_mergeEPcS5_RNS_14BufferReadableERNS_5ArenaE
Line
Count
Source
244
252
                               BufferReadable& buf, Arena&) const override {
245
252
        auto& set = this->data(place).set;
246
252
        UInt64 size;
247
252
        buf.read_var_uint(size);
248
249
252
        set.rehash(size + set.size());
250
251
522
        for (size_t i = 0; i < size; ++i) {
252
270
            KeyType ref;
253
270
            buf.read_binary(ref);
254
270
            set.insert(ref);
255
270
        }
256
252
    }
257
258
    void deserialize(AggregateDataPtr __restrict place, BufferReadable& buf,
259
82
                     Arena&) const override {
260
82
        auto& set = this->data(place).set;
261
82
        UInt64 size;
262
82
        buf.read_var_uint(size);
263
264
82
        set.rehash(size + set.size());
265
266
180
        for (size_t i = 0; i < size; ++i) {
267
98
            KeyType ref;
268
98
            buf.read_binary(ref);
269
98
            set.insert(ref);
270
98
        }
271
82
    }
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
259
81
                     Arena&) const override {
260
81
        auto& set = this->data(place).set;
261
81
        UInt64 size;
262
81
        buf.read_var_uint(size);
263
264
81
        set.rehash(size + set.size());
265
266
175
        for (size_t i = 0; i < size; ++i) {
267
94
            KeyType ref;
268
94
            buf.read_binary(ref);
269
94
            set.insert(ref);
270
94
        }
271
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_13PrimitiveTypeE43ENS_30AggregateFunctionUniqExactDataILS1_43EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS1_42EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS1_41EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE44ENS_30AggregateFunctionUniqExactDataILS1_44EEEE11deserializeEPcRNS_14BufferReadableERNS_5ArenaE
Line
Count
Source
259
1
                     Arena&) const override {
260
1
        auto& set = this->data(place).set;
261
1
        UInt64 size;
262
1
        buf.read_var_uint(size);
263
264
1
        set.rehash(size + set.size());
265
266
5
        for (size_t i = 0; i < size; ++i) {
267
4
            KeyType ref;
268
4
            buf.read_binary(ref);
269
4
            set.insert(ref);
270
4
        }
271
1
    }
272
273
16.7k
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
274
16.7k
        assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
275
16.7k
                this->data(place).set.size());
276
16.7k
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE2ENS_30AggregateFunctionUniqExactDataILS1_2EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
273
11
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
274
11
        assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
275
11
                this->data(place).set.size());
276
11
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE3ENS_30AggregateFunctionUniqExactDataILS1_3EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
273
32
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
274
32
        assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
275
32
                this->data(place).set.size());
276
32
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE4ENS_30AggregateFunctionUniqExactDataILS1_4EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
273
1
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
274
1
        assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
275
1
                this->data(place).set.size());
276
1
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE5ENS_30AggregateFunctionUniqExactDataILS1_5EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
273
9.38k
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
274
9.38k
        assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
275
9.38k
                this->data(place).set.size());
276
9.38k
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE6ENS_30AggregateFunctionUniqExactDataILS1_6EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
273
250
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
274
250
        assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
275
250
                this->data(place).set.size());
276
250
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE7ENS_30AggregateFunctionUniqExactDataILS1_7EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
273
16
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
274
16
        assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
275
16
                this->data(place).set.size());
276
16
    }
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE28ENS_30AggregateFunctionUniqExactDataILS1_28EEEE18insert_result_intoEPKcRNS_7IColumnE
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE29ENS_30AggregateFunctionUniqExactDataILS1_29EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
273
11
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
274
11
        assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
275
11
                this->data(place).set.size());
276
11
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE30ENS_30AggregateFunctionUniqExactDataILS1_30EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
273
17
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
274
17
        assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
275
17
                this->data(place).set.size());
276
17
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE35ENS_30AggregateFunctionUniqExactDataILS1_35EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
273
16
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
274
16
        assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
275
16
                this->data(place).set.size());
276
16
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE10ENS_30AggregateFunctionUniqExactDataILS1_10EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
273
6.75k
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
274
6.75k
        assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
275
6.75k
                this->data(place).set.size());
276
6.75k
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE17ENS_30AggregateFunctionUniqExactDataILS1_17EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
273
2
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
274
2
        assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
275
2
                this->data(place).set.size());
276
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
273
95
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
274
95
        assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
275
95
                this->data(place).set.size());
276
95
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE26ENS_30AggregateFunctionUniqExactDataILS1_26EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
273
5
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
274
5
        assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
275
5
                this->data(place).set.size());
276
5
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE43ENS_30AggregateFunctionUniqExactDataILS1_43EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
273
3
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
274
3
        assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
275
3
                this->data(place).set.size());
276
3
    }
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE42ENS_30AggregateFunctionUniqExactDataILS1_42EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
273
42
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
274
42
        assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
275
42
                this->data(place).set.size());
276
42
    }
Unexecuted instantiation: _ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE41ENS_30AggregateFunctionUniqExactDataILS1_41EEEE18insert_result_intoEPKcRNS_7IColumnE
_ZNK5doris21AggregateFunctionUniqILNS_13PrimitiveTypeE44ENS_30AggregateFunctionUniqExactDataILS1_44EEEE18insert_result_intoEPKcRNS_7IColumnE
Line
Count
Source
273
83
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
274
83
        assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
275
83
                this->data(place).set.size());
276
83
    }
277
};
278
279
class AggregateFunctionUniqVariant final
280
        : public IAggregateFunctionDataHelper<AggregateFunctionUniqVariantData,
281
                                              AggregateFunctionUniqVariant>,
282
          UnaryExpression,
283
          NotNullableAggregateFunction {
284
public:
285
    using Base = IAggregateFunctionDataHelper<AggregateFunctionUniqVariantData,
286
                                              AggregateFunctionUniqVariant>;
287
288
    explicit AggregateFunctionUniqVariant(const DataTypes& argument_types_)
289
5
            : Base(argument_types_) {}
290
291
0
    String get_name() const override { return AggregateFunctionUniqVariantData::get_name(); }
292
293
0
    DataTypePtr get_return_type() const override { return std::make_shared<DataTypeInt64>(); }
294
295
1
    void reset(AggregateDataPtr __restrict place) const override { Base::data(place).reset(); }
296
297
    void add(AggregateDataPtr __restrict place, const IColumn** columns, ssize_t row_num,
298
38
             Arena& arena) const override {
299
38
        const char* begin = nullptr;
300
38
        const StringRef key = columns[0]->serialize_value_into_arena(row_num, arena, begin);
301
38
        const auto [unused, inserted] = Base::data(place).set.emplace(key);
302
38
        static_cast<void>(unused);
303
38
        if (!inserted) {
304
11
            const auto* rolled_back = static_cast<const char*>(arena.rollback(key.size));
305
11
            DCHECK_EQ(rolled_back, key.data);
306
11
        }
307
38
    }
308
309
    void merge(AggregateDataPtr __restrict place, ConstAggregateDataPtr rhs,
310
2
               Arena& arena) const override {
311
2
        auto& destination = Base::data(place);
312
2
        const auto& source = Base::data(rhs);
313
2
        destination.set.reserve(destination.set.size() + source.set.size());
314
5
        for (const StringRef key : source.set) {
315
5
            destination.insert_borrowed(key, arena);
316
5
        }
317
2
    }
318
319
2
    void serialize(ConstAggregateDataPtr __restrict place, BufferWritable& buf) const override {
320
2
        const auto& set = Base::data(place).set;
321
2
        buf.write_var_uint(set.size());
322
10
        for (const StringRef key : set) {
323
10
            buf.write_binary(key);
324
10
        }
325
2
    }
326
327
    void deserialize_and_merge(AggregateDataPtr __restrict place, AggregateDataPtr __restrict rhs,
328
1
                               BufferReadable& buf, Arena& arena) const override {
329
1
        static_cast<void>(rhs);
330
1
        deserialize(place, buf, arena);
331
1
    }
332
333
    void deserialize(AggregateDataPtr __restrict place, BufferReadable& buf,
334
3
                     Arena& arena) const override {
335
3
        auto& data = Base::data(place);
336
3
        UInt64 size = 0;
337
3
        buf.read_var_uint(size);
338
3
        data.set.reserve(data.set.size() + size);
339
18
        for (size_t index = 0; index < size; ++index) {
340
15
            StringRef borrowed;
341
15
            buf.read_binary(borrowed);
342
15
            data.insert_borrowed(borrowed, arena);
343
15
        }
344
3
    }
345
346
10
    void insert_result_into(ConstAggregateDataPtr __restrict place, IColumn& to) const override {
347
10
        assert_cast<ColumnInt64&, TypeCheckOnRelease::DISABLE>(to).get_data().push_back(
348
10
                Base::data(place).set.size());
349
10
    }
350
};
351
352
} // namespace doris