Coverage Report

Created: 2026-03-27 17:06

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exec/common/groupby_agg_context.cpp
Line
Count
Source
1
// Licensed to the Apache Software Foundation (ASF) under one
2
// or more contributor license agreements.  See the NOTICE file
3
// distributed with this work for additional information
4
// regarding copyright ownership.  The ASF licenses this file
5
// to you under the Apache License, Version 2.0 (the
6
// "License"); you may not use this file except in compliance
7
// with the License.  You may obtain a copy of the License at
8
//
9
//   http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing,
12
// software distributed under the License is distributed on an
13
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
// KIND, either express or implied.  See the License for the
15
// specific language governing permissions and limitations
16
// under the License.
17
18
#include "exec/common/groupby_agg_context.h"
19
20
#include <gen_cpp/Metrics_types.h>
21
22
#include "common/config.h"
23
#include "common/exception.h"
24
#include "exec/common/agg_context_utils.h"
25
#include "exec/common/columns_hashing.h"
26
#include "exec/common/hash_table/hash_map_context.h"
27
#include "exec/common/hash_table/hash_map_util.h"
28
#include "exec/common/template_helpers.hpp"
29
#include "exprs/vectorized_agg_fn.h"
30
#include "exprs/vexpr_context.h"
31
#include "exprs/vslot_ref.h"
32
#include "runtime/runtime_state.h"
33
34
namespace doris {
35
36
GroupByAggContext::GroupByAggContext(std::vector<AggFnEvaluator*> agg_evaluators,
37
                                   VExprContextSPtrs groupby_expr_ctxs, Sizes agg_state_offsets,
38
                                   size_t total_agg_state_size, size_t agg_state_alignment,
39
                                   bool is_first_phase)
40
50
        : _hash_table_data(std::make_unique<AggregatedDataVariants>()),
41
50
          _agg_evaluators(std::move(agg_evaluators)),
42
50
          _groupby_expr_ctxs(std::move(groupby_expr_ctxs)),
43
50
          _agg_state_offsets(std::move(agg_state_offsets)),
44
50
          _total_agg_state_size(total_agg_state_size),
45
50
          _agg_state_alignment(agg_state_alignment),
46
50
          _is_first_phase(is_first_phase) {}
47
48
50
GroupByAggContext::~GroupByAggContext() = default;
49
50
// ==================== Profile initialization ====================
51
52
43
void GroupByAggContext::init_sink_profile(RuntimeProfile* profile) {
53
43
    _hash_table_compute_timer = ADD_TIMER(profile, "HashTableComputeTime");
54
43
    _hash_table_emplace_timer = ADD_TIMER(profile, "HashTableEmplaceTime");
55
43
    _hash_table_input_counter = ADD_COUNTER(profile, "HashTableInputCount", TUnit::UNIT);
56
43
    _hash_table_limit_compute_timer = ADD_TIMER(profile, "DoLimitComputeTime");
57
43
    _build_timer = ADD_TIMER(profile, "BuildTime");
58
43
    _merge_timer = ADD_TIMER(profile, "MergeTime");
59
43
    _expr_timer = ADD_TIMER(profile, "ExprTime");
60
43
    _deserialize_data_timer = ADD_TIMER(profile, "DeserializeAndMergeTime");
61
43
    _hash_table_size_counter = ADD_COUNTER(profile, "HashTableSize", TUnit::UNIT);
62
43
    _hash_table_memory_usage =
63
43
            ADD_COUNTER_WITH_LEVEL(profile, "MemoryUsageHashTable", TUnit::BYTES, 1);
64
43
    _serialize_key_arena_memory_usage =
65
43
            ADD_COUNTER_WITH_LEVEL(profile, "MemoryUsageSerializeKeyArena", TUnit::BYTES, 1);
66
43
    _memory_usage_container = ADD_COUNTER(profile, "MemoryUsageContainer", TUnit::BYTES);
67
43
    _memory_usage_arena = ADD_COUNTER(profile, "MemoryUsageArena", TUnit::BYTES);
68
43
    _memory_used_counter = profile->get_counter("MemoryUsage");
69
43
}
70
71
13
void GroupByAggContext::init_source_profile(RuntimeProfile* profile) {
72
13
    _get_results_timer = ADD_TIMER(profile, "GetResultsTime");
73
13
    _hash_table_iterate_timer = ADD_TIMER(profile, "HashTableIterateTime");
74
13
    _insert_keys_to_column_timer = ADD_TIMER(profile, "InsertKeysToColumnTime");
75
13
    _insert_values_to_column_timer = ADD_TIMER(profile, "InsertValuesToColumnTime");
76
77
    // Register overlapping counters on source profile (same names as sink, for
78
    // PartitionedAggLocalState::_update_profile to read from inner source profile).
79
13
    _source_merge_timer = ADD_TIMER(profile, "MergeTime");
80
13
    _source_deserialize_data_timer = ADD_TIMER(profile, "DeserializeAndMergeTime");
81
13
    _source_hash_table_compute_timer = ADD_TIMER(profile, "HashTableComputeTime");
82
13
    _source_hash_table_emplace_timer = ADD_TIMER(profile, "HashTableEmplaceTime");
83
13
    _source_hash_table_input_counter = ADD_COUNTER(profile, "HashTableInputCount", TUnit::UNIT);
84
13
    _source_hash_table_size_counter = ADD_COUNTER(profile, "HashTableSize", TUnit::UNIT);
85
13
    _source_hash_table_memory_usage =
86
13
            ADD_COUNTER_WITH_LEVEL(profile, "MemoryUsageHashTable", TUnit::BYTES, 1);
87
13
    _source_memory_usage_container = ADD_COUNTER(profile, "MemoryUsageContainer", TUnit::BYTES);
88
13
    _source_memory_usage_arena = ADD_COUNTER(profile, "MemoryUsageArena", TUnit::BYTES);
89
13
}
90
91
// ==================== Hash table management ====================
92
93
43
void GroupByAggContext::init_hash_method() {
94
43
    auto st = doris::init_hash_method<AggregatedDataVariants>(
95
43
            _hash_table_data.get(), get_data_types(_groupby_expr_ctxs), _is_first_phase);
96
43
    if (!st.ok()) {
97
0
        throw Exception(st.code(), st.to_string());
98
0
    }
99
43
}
100
101
43
void GroupByAggContext::init_agg_data_container() {
102
43
    std::visit(
103
43
            Overload {[&](std::monostate& arg) -> void {
104
0
                          throw doris::Exception(ErrorCode::INTERNAL_ERROR, "uninited hash table");
105
0
                      },
106
43
                      [&](auto& agg_method) {
107
43
                          using HashTableType = std::decay_t<decltype(agg_method)>;
108
43
                          using KeyType = typename HashTableType::Key;
109
43
                          _agg_data_container = std::make_unique<AggregateDataContainer>(
110
43
                                  sizeof(KeyType),
111
43
                                  ((_total_agg_state_size + _agg_state_alignment - 1) /
112
43
                                   _agg_state_alignment) *
113
43
                                          _agg_state_alignment);
114
43
                      }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23init_agg_data_containerEvENK3$_1clINS_16MethodSerializedI9PHHashMapINS_9StringRefEPc11DefaultHashIS5_vEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23init_agg_data_containerEvENK3$_1clINS_15MethodOneNumberIh9PHHashMapIhPc9HashCRC32IhEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23init_agg_data_containerEvENK3$_1clINS_15MethodOneNumberIt9PHHashMapItPc9HashCRC32ItEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23init_agg_data_containerEvENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjPc9HashCRC32IjEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23init_agg_data_containerEvENK3$_1clINS_15MethodOneNumberIm9PHHashMapImPc9HashCRC32ImEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23init_agg_data_containerEvENK3$_1clINS_19MethodStringNoCacheINS_13StringHashMapIPcNS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23init_agg_data_containerEvENK3$_1clINS_15MethodOneNumberIN4wide7integerILm128EjEE9PHHashMapIS6_Pc9HashCRC32IS6_EEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23init_agg_data_containerEvENK3$_1clINS_15MethodOneNumberIN4wide7integerILm256EjEE9PHHashMapIS6_Pc9HashCRC32IS6_EEEEEEDaRT_
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23init_agg_data_containerEvENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjPc14HashMixWrapperIj9HashCRC32IjEEEEEEEDaRT_
Line
Count
Source
106
19
                      [&](auto& agg_method) {
107
19
                          using HashTableType = std::decay_t<decltype(agg_method)>;
108
19
                          using KeyType = typename HashTableType::Key;
109
19
                          _agg_data_container = std::make_unique<AggregateDataContainer>(
110
19
                                  sizeof(KeyType),
111
19
                                  ((_total_agg_state_size + _agg_state_alignment - 1) /
112
19
                                   _agg_state_alignment) *
113
19
                                          _agg_state_alignment);
114
19
                      }},
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23init_agg_data_containerEvENK3$_1clINS_15MethodOneNumberIm9PHHashMapImPc14HashMixWrapperIm9HashCRC32ImEEEEEEEDaRT_
Line
Count
Source
106
16
                      [&](auto& agg_method) {
107
16
                          using HashTableType = std::decay_t<decltype(agg_method)>;
108
16
                          using KeyType = typename HashTableType::Key;
109
16
                          _agg_data_container = std::make_unique<AggregateDataContainer>(
110
16
                                  sizeof(KeyType),
111
16
                                  ((_total_agg_state_size + _agg_state_alignment - 1) /
112
16
                                   _agg_state_alignment) *
113
16
                                          _agg_state_alignment);
114
16
                      }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23init_agg_data_containerEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI9PHHashMapIhPc9HashCRC32IhEEEEEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23init_agg_data_containerEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashMapItPc9HashCRC32ItEEEEEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23init_agg_data_containerEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjPc9HashCRC32IjEEEEEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23init_agg_data_containerEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImPc9HashCRC32ImEEEEEEEEEEDaRT_
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23init_agg_data_containerEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjPc14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEEDaRT_
Line
Count
Source
106
1
                      [&](auto& agg_method) {
107
1
                          using HashTableType = std::decay_t<decltype(agg_method)>;
108
1
                          using KeyType = typename HashTableType::Key;
109
1
                          _agg_data_container = std::make_unique<AggregateDataContainer>(
110
1
                                  sizeof(KeyType),
111
1
                                  ((_total_agg_state_size + _agg_state_alignment - 1) /
112
1
                                   _agg_state_alignment) *
113
1
                                          _agg_state_alignment);
114
1
                      }},
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23init_agg_data_containerEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImPc14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEEDaRT_
Line
Count
Source
106
7
                      [&](auto& agg_method) {
107
7
                          using HashTableType = std::decay_t<decltype(agg_method)>;
108
7
                          using KeyType = typename HashTableType::Key;
109
7
                          _agg_data_container = std::make_unique<AggregateDataContainer>(
110
7
                                  sizeof(KeyType),
111
7
                                  ((_total_agg_state_size + _agg_state_alignment - 1) /
112
7
                                   _agg_state_alignment) *
113
7
                                          _agg_state_alignment);
114
7
                      }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23init_agg_data_containerEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashMapIS7_Pc9HashCRC32IS7_EEEEEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23init_agg_data_containerEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashMapIS7_Pc9HashCRC32IS7_EEEEEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23init_agg_data_containerEvENK3$_1clINS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIPcNS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23init_agg_data_containerEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapImPc9HashCRC32ImEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23init_agg_data_containerEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt72EPc9HashCRC32IS5_EEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23init_agg_data_containerEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt96EPc9HashCRC32IS5_EEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23init_agg_data_containerEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt104EPc9HashCRC32IS5_EEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23init_agg_data_containerEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm128EjEEPc9HashCRC32IS7_EEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23init_agg_data_containerEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt136EPc9HashCRC32IS5_EEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23init_agg_data_containerEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm256EjEEPc9HashCRC32IS7_EEEEEEDaRT_
115
43
            _hash_table_data->method_variant);
116
43
}
117
118
130
size_t GroupByAggContext::hash_table_size() const {
119
130
    return std::visit(Overload {[&](std::monostate& arg) -> size_t { return 0; },
120
130
                                [&](auto& agg_method) { return agg_method.hash_table->size(); }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext15hash_table_sizeEvENK3$_1clINS_16MethodSerializedI9PHHashMapINS_9StringRefEPc11DefaultHashIS5_vEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext15hash_table_sizeEvENK3$_1clINS_15MethodOneNumberIh9PHHashMapIhPc9HashCRC32IhEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext15hash_table_sizeEvENK3$_1clINS_15MethodOneNumberIt9PHHashMapItPc9HashCRC32ItEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext15hash_table_sizeEvENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjPc9HashCRC32IjEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext15hash_table_sizeEvENK3$_1clINS_15MethodOneNumberIm9PHHashMapImPc9HashCRC32ImEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext15hash_table_sizeEvENK3$_1clINS_19MethodStringNoCacheINS_13StringHashMapIPcNS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext15hash_table_sizeEvENK3$_1clINS_15MethodOneNumberIN4wide7integerILm128EjEE9PHHashMapIS6_Pc9HashCRC32IS6_EEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext15hash_table_sizeEvENK3$_1clINS_15MethodOneNumberIN4wide7integerILm256EjEE9PHHashMapIS6_Pc9HashCRC32IS6_EEEEEEDaRT_
groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext15hash_table_sizeEvENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjPc14HashMixWrapperIj9HashCRC32IjEEEEEEEDaRT_
Line
Count
Source
120
84
                                [&](auto& agg_method) { return agg_method.hash_table->size(); }},
groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext15hash_table_sizeEvENK3$_1clINS_15MethodOneNumberIm9PHHashMapImPc14HashMixWrapperIm9HashCRC32ImEEEEEEEDaRT_
Line
Count
Source
120
22
                                [&](auto& agg_method) { return agg_method.hash_table->size(); }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext15hash_table_sizeEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI9PHHashMapIhPc9HashCRC32IhEEEEEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext15hash_table_sizeEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashMapItPc9HashCRC32ItEEEEEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext15hash_table_sizeEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjPc9HashCRC32IjEEEEEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext15hash_table_sizeEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImPc9HashCRC32ImEEEEEEEEEEDaRT_
groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext15hash_table_sizeEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjPc14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEEDaRT_
Line
Count
Source
120
11
                                [&](auto& agg_method) { return agg_method.hash_table->size(); }},
groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext15hash_table_sizeEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImPc14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEEDaRT_
Line
Count
Source
120
13
                                [&](auto& agg_method) { return agg_method.hash_table->size(); }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext15hash_table_sizeEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashMapIS7_Pc9HashCRC32IS7_EEEEEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext15hash_table_sizeEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashMapIS7_Pc9HashCRC32IS7_EEEEEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext15hash_table_sizeEvENK3$_1clINS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIPcNS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext15hash_table_sizeEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapImPc9HashCRC32ImEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext15hash_table_sizeEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt72EPc9HashCRC32IS5_EEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext15hash_table_sizeEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt96EPc9HashCRC32IS5_EEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext15hash_table_sizeEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt104EPc9HashCRC32IS5_EEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext15hash_table_sizeEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm128EjEEPc9HashCRC32IS7_EEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext15hash_table_sizeEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt136EPc9HashCRC32IS5_EEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext15hash_table_sizeEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm256EjEEPc9HashCRC32IS7_EEEEEEDaRT_
121
130
                      _hash_table_data->method_variant);
122
130
}
123
124
47
size_t GroupByAggContext::memory_usage() const {
125
47
    if (hash_table_size() == 0) {
126
11
        return 0;
127
11
    }
128
36
    size_t usage = 0;
129
36
    usage += _agg_arena.size();
130
131
36
    if (_agg_data_container) {
132
36
        usage += _agg_data_container->memory_usage();
133
36
    }
134
135
36
    std::visit(Overload {[&](std::monostate& arg) -> void {
136
0
                             throw doris::Exception(ErrorCode::INTERNAL_ERROR,
137
0
                                                    "uninited hash table");
138
0
                         },
139
36
                         [&](auto& agg_method) -> void {
140
36
                             usage += agg_method.hash_table->get_buffer_size_in_bytes();
141
36
                         }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext12memory_usageEvENK3$_1clINS_16MethodSerializedI9PHHashMapINS_9StringRefEPc11DefaultHashIS5_vEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext12memory_usageEvENK3$_1clINS_15MethodOneNumberIh9PHHashMapIhPc9HashCRC32IhEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext12memory_usageEvENK3$_1clINS_15MethodOneNumberIt9PHHashMapItPc9HashCRC32ItEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext12memory_usageEvENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjPc9HashCRC32IjEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext12memory_usageEvENK3$_1clINS_15MethodOneNumberIm9PHHashMapImPc9HashCRC32ImEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext12memory_usageEvENK3$_1clINS_19MethodStringNoCacheINS_13StringHashMapIPcNS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext12memory_usageEvENK3$_1clINS_15MethodOneNumberIN4wide7integerILm128EjEE9PHHashMapIS6_Pc9HashCRC32IS6_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext12memory_usageEvENK3$_1clINS_15MethodOneNumberIN4wide7integerILm256EjEE9PHHashMapIS6_Pc9HashCRC32IS6_EEEEEEvRT_
groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext12memory_usageEvENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjPc14HashMixWrapperIj9HashCRC32IjEEEEEEEvRT_
Line
Count
Source
139
28
                         [&](auto& agg_method) -> void {
140
28
                             usage += agg_method.hash_table->get_buffer_size_in_bytes();
141
28
                         }},
groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext12memory_usageEvENK3$_1clINS_15MethodOneNumberIm9PHHashMapImPc14HashMixWrapperIm9HashCRC32ImEEEEEEEvRT_
Line
Count
Source
139
2
                         [&](auto& agg_method) -> void {
140
2
                             usage += agg_method.hash_table->get_buffer_size_in_bytes();
141
2
                         }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext12memory_usageEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI9PHHashMapIhPc9HashCRC32IhEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext12memory_usageEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashMapItPc9HashCRC32ItEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext12memory_usageEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjPc9HashCRC32IjEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext12memory_usageEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImPc9HashCRC32ImEEEEEEEEEEvRT_
groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext12memory_usageEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjPc14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEEvRT_
Line
Count
Source
139
4
                         [&](auto& agg_method) -> void {
140
4
                             usage += agg_method.hash_table->get_buffer_size_in_bytes();
141
4
                         }},
groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext12memory_usageEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImPc14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEEvRT_
Line
Count
Source
139
2
                         [&](auto& agg_method) -> void {
140
2
                             usage += agg_method.hash_table->get_buffer_size_in_bytes();
141
2
                         }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext12memory_usageEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashMapIS7_Pc9HashCRC32IS7_EEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext12memory_usageEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashMapIS7_Pc9HashCRC32IS7_EEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext12memory_usageEvENK3$_1clINS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIPcNS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext12memory_usageEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapImPc9HashCRC32ImEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext12memory_usageEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt72EPc9HashCRC32IS5_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext12memory_usageEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt96EPc9HashCRC32IS5_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext12memory_usageEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt104EPc9HashCRC32IS5_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext12memory_usageEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm128EjEEPc9HashCRC32IS7_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext12memory_usageEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt136EPc9HashCRC32IS5_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext12memory_usageEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm256EjEEPc9HashCRC32IS7_EEEEEEvRT_
142
36
               _hash_table_data->method_variant);
143
144
36
    return usage;
145
47
}
146
147
60
void GroupByAggContext::update_memusage() {
148
60
    std::visit(
149
60
            Overload {[&](std::monostate& arg) -> void {
150
0
                          throw doris::Exception(ErrorCode::INTERNAL_ERROR, "uninited hash table");
151
0
                      },
152
60
                      [&](auto& agg_method) -> void {
153
60
                          auto& data = *agg_method.hash_table;
154
60
                          int64_t memory_usage_arena = _agg_arena.size();
155
60
                          int64_t memory_usage_container =
156
60
                                  _agg_data_container ? _agg_data_container->memory_usage() : 0;
157
60
                          int64_t hash_table_memory_usage = data.get_buffer_size_in_bytes();
158
60
                          auto ht_size = static_cast<int64_t>(data.size());
159
160
                          // Update sink-side counters
161
60
                          if (_memory_usage_arena) {
162
60
                              COUNTER_SET(_memory_usage_arena, memory_usage_arena);
163
60
                          }
164
60
                          if (_memory_usage_container) {
165
60
                              COUNTER_SET(_memory_usage_container, memory_usage_container);
166
60
                          }
167
60
                          if (_hash_table_memory_usage) {
168
60
                              COUNTER_SET(_hash_table_memory_usage, hash_table_memory_usage);
169
60
                          }
170
60
                          if (_hash_table_size_counter) {
171
60
                              COUNTER_SET(_hash_table_size_counter, ht_size);
172
60
                          }
173
60
                          if (_serialize_key_arena_memory_usage) {
174
60
                              COUNTER_SET(_serialize_key_arena_memory_usage,
175
60
                                          memory_usage_arena + memory_usage_container);
176
60
                          }
177
60
                          if (_memory_used_counter) {
178
0
                              COUNTER_SET(_memory_used_counter, memory_usage_arena +
179
0
                                                                        memory_usage_container +
180
0
                                                                        hash_table_memory_usage);
181
0
                          }
182
183
                          // Update source-side counters (for PartitionedAgg source profile)
184
60
                          if (_source_memory_usage_arena) {
185
8
                              COUNTER_SET(_source_memory_usage_arena, memory_usage_arena);
186
8
                          }
187
60
                          if (_source_memory_usage_container) {
188
8
                              COUNTER_SET(_source_memory_usage_container, memory_usage_container);
189
8
                          }
190
60
                          if (_source_hash_table_memory_usage) {
191
8
                              COUNTER_SET(_source_hash_table_memory_usage,
192
8
                                          hash_table_memory_usage);
193
8
                          }
194
60
                          if (_source_hash_table_size_counter) {
195
8
                              COUNTER_SET(_source_hash_table_size_counter, ht_size);
196
8
                          }
197
60
                      }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext15update_memusageEvENK3$_1clINS_16MethodSerializedI9PHHashMapINS_9StringRefEPc11DefaultHashIS5_vEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext15update_memusageEvENK3$_1clINS_15MethodOneNumberIh9PHHashMapIhPc9HashCRC32IhEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext15update_memusageEvENK3$_1clINS_15MethodOneNumberIt9PHHashMapItPc9HashCRC32ItEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext15update_memusageEvENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjPc9HashCRC32IjEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext15update_memusageEvENK3$_1clINS_15MethodOneNumberIm9PHHashMapImPc9HashCRC32ImEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext15update_memusageEvENK3$_1clINS_19MethodStringNoCacheINS_13StringHashMapIPcNS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext15update_memusageEvENK3$_1clINS_15MethodOneNumberIN4wide7integerILm128EjEE9PHHashMapIS6_Pc9HashCRC32IS6_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext15update_memusageEvENK3$_1clINS_15MethodOneNumberIN4wide7integerILm256EjEE9PHHashMapIS6_Pc9HashCRC32IS6_EEEEEEvRT_
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext15update_memusageEvENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjPc14HashMixWrapperIj9HashCRC32IjEEEEEEEvRT_
Line
Count
Source
152
25
                      [&](auto& agg_method) -> void {
153
25
                          auto& data = *agg_method.hash_table;
154
25
                          int64_t memory_usage_arena = _agg_arena.size();
155
25
                          int64_t memory_usage_container =
156
25
                                  _agg_data_container ? _agg_data_container->memory_usage() : 0;
157
25
                          int64_t hash_table_memory_usage = data.get_buffer_size_in_bytes();
158
25
                          auto ht_size = static_cast<int64_t>(data.size());
159
160
                          // Update sink-side counters
161
25
                          if (_memory_usage_arena) {
162
25
                              COUNTER_SET(_memory_usage_arena, memory_usage_arena);
163
25
                          }
164
25
                          if (_memory_usage_container) {
165
25
                              COUNTER_SET(_memory_usage_container, memory_usage_container);
166
25
                          }
167
25
                          if (_hash_table_memory_usage) {
168
25
                              COUNTER_SET(_hash_table_memory_usage, hash_table_memory_usage);
169
25
                          }
170
25
                          if (_hash_table_size_counter) {
171
25
                              COUNTER_SET(_hash_table_size_counter, ht_size);
172
25
                          }
173
25
                          if (_serialize_key_arena_memory_usage) {
174
25
                              COUNTER_SET(_serialize_key_arena_memory_usage,
175
25
                                          memory_usage_arena + memory_usage_container);
176
25
                          }
177
25
                          if (_memory_used_counter) {
178
0
                              COUNTER_SET(_memory_used_counter, memory_usage_arena +
179
0
                                                                        memory_usage_container +
180
0
                                                                        hash_table_memory_usage);
181
0
                          }
182
183
                          // Update source-side counters (for PartitionedAgg source profile)
184
25
                          if (_source_memory_usage_arena) {
185
0
                              COUNTER_SET(_source_memory_usage_arena, memory_usage_arena);
186
0
                          }
187
25
                          if (_source_memory_usage_container) {
188
0
                              COUNTER_SET(_source_memory_usage_container, memory_usage_container);
189
0
                          }
190
25
                          if (_source_hash_table_memory_usage) {
191
0
                              COUNTER_SET(_source_hash_table_memory_usage,
192
0
                                          hash_table_memory_usage);
193
0
                          }
194
25
                          if (_source_hash_table_size_counter) {
195
0
                              COUNTER_SET(_source_hash_table_size_counter, ht_size);
196
0
                          }
197
25
                      }},
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext15update_memusageEvENK3$_1clINS_15MethodOneNumberIm9PHHashMapImPc14HashMixWrapperIm9HashCRC32ImEEEEEEEvRT_
Line
Count
Source
152
23
                      [&](auto& agg_method) -> void {
153
23
                          auto& data = *agg_method.hash_table;
154
23
                          int64_t memory_usage_arena = _agg_arena.size();
155
23
                          int64_t memory_usage_container =
156
23
                                  _agg_data_container ? _agg_data_container->memory_usage() : 0;
157
23
                          int64_t hash_table_memory_usage = data.get_buffer_size_in_bytes();
158
23
                          auto ht_size = static_cast<int64_t>(data.size());
159
160
                          // Update sink-side counters
161
23
                          if (_memory_usage_arena) {
162
23
                              COUNTER_SET(_memory_usage_arena, memory_usage_arena);
163
23
                          }
164
23
                          if (_memory_usage_container) {
165
23
                              COUNTER_SET(_memory_usage_container, memory_usage_container);
166
23
                          }
167
23
                          if (_hash_table_memory_usage) {
168
23
                              COUNTER_SET(_hash_table_memory_usage, hash_table_memory_usage);
169
23
                          }
170
23
                          if (_hash_table_size_counter) {
171
23
                              COUNTER_SET(_hash_table_size_counter, ht_size);
172
23
                          }
173
23
                          if (_serialize_key_arena_memory_usage) {
174
23
                              COUNTER_SET(_serialize_key_arena_memory_usage,
175
23
                                          memory_usage_arena + memory_usage_container);
176
23
                          }
177
23
                          if (_memory_used_counter) {
178
0
                              COUNTER_SET(_memory_used_counter, memory_usage_arena +
179
0
                                                                        memory_usage_container +
180
0
                                                                        hash_table_memory_usage);
181
0
                          }
182
183
                          // Update source-side counters (for PartitionedAgg source profile)
184
23
                          if (_source_memory_usage_arena) {
185
4
                              COUNTER_SET(_source_memory_usage_arena, memory_usage_arena);
186
4
                          }
187
23
                          if (_source_memory_usage_container) {
188
4
                              COUNTER_SET(_source_memory_usage_container, memory_usage_container);
189
4
                          }
190
23
                          if (_source_hash_table_memory_usage) {
191
4
                              COUNTER_SET(_source_hash_table_memory_usage,
192
4
                                          hash_table_memory_usage);
193
4
                          }
194
23
                          if (_source_hash_table_size_counter) {
195
4
                              COUNTER_SET(_source_hash_table_size_counter, ht_size);
196
4
                          }
197
23
                      }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext15update_memusageEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI9PHHashMapIhPc9HashCRC32IhEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext15update_memusageEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashMapItPc9HashCRC32ItEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext15update_memusageEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjPc9HashCRC32IjEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext15update_memusageEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImPc9HashCRC32ImEEEEEEEEEEvRT_
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext15update_memusageEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjPc14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEEvRT_
Line
Count
Source
152
2
                      [&](auto& agg_method) -> void {
153
2
                          auto& data = *agg_method.hash_table;
154
2
                          int64_t memory_usage_arena = _agg_arena.size();
155
2
                          int64_t memory_usage_container =
156
2
                                  _agg_data_container ? _agg_data_container->memory_usage() : 0;
157
2
                          int64_t hash_table_memory_usage = data.get_buffer_size_in_bytes();
158
2
                          auto ht_size = static_cast<int64_t>(data.size());
159
160
                          // Update sink-side counters
161
2
                          if (_memory_usage_arena) {
162
2
                              COUNTER_SET(_memory_usage_arena, memory_usage_arena);
163
2
                          }
164
2
                          if (_memory_usage_container) {
165
2
                              COUNTER_SET(_memory_usage_container, memory_usage_container);
166
2
                          }
167
2
                          if (_hash_table_memory_usage) {
168
2
                              COUNTER_SET(_hash_table_memory_usage, hash_table_memory_usage);
169
2
                          }
170
2
                          if (_hash_table_size_counter) {
171
2
                              COUNTER_SET(_hash_table_size_counter, ht_size);
172
2
                          }
173
2
                          if (_serialize_key_arena_memory_usage) {
174
2
                              COUNTER_SET(_serialize_key_arena_memory_usage,
175
2
                                          memory_usage_arena + memory_usage_container);
176
2
                          }
177
2
                          if (_memory_used_counter) {
178
0
                              COUNTER_SET(_memory_used_counter, memory_usage_arena +
179
0
                                                                        memory_usage_container +
180
0
                                                                        hash_table_memory_usage);
181
0
                          }
182
183
                          // Update source-side counters (for PartitionedAgg source profile)
184
2
                          if (_source_memory_usage_arena) {
185
0
                              COUNTER_SET(_source_memory_usage_arena, memory_usage_arena);
186
0
                          }
187
2
                          if (_source_memory_usage_container) {
188
0
                              COUNTER_SET(_source_memory_usage_container, memory_usage_container);
189
0
                          }
190
2
                          if (_source_hash_table_memory_usage) {
191
0
                              COUNTER_SET(_source_hash_table_memory_usage,
192
0
                                          hash_table_memory_usage);
193
0
                          }
194
2
                          if (_source_hash_table_size_counter) {
195
0
                              COUNTER_SET(_source_hash_table_size_counter, ht_size);
196
0
                          }
197
2
                      }},
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext15update_memusageEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImPc14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEEvRT_
Line
Count
Source
152
10
                      [&](auto& agg_method) -> void {
153
10
                          auto& data = *agg_method.hash_table;
154
10
                          int64_t memory_usage_arena = _agg_arena.size();
155
10
                          int64_t memory_usage_container =
156
10
                                  _agg_data_container ? _agg_data_container->memory_usage() : 0;
157
10
                          int64_t hash_table_memory_usage = data.get_buffer_size_in_bytes();
158
10
                          auto ht_size = static_cast<int64_t>(data.size());
159
160
                          // Update sink-side counters
161
10
                          if (_memory_usage_arena) {
162
10
                              COUNTER_SET(_memory_usage_arena, memory_usage_arena);
163
10
                          }
164
10
                          if (_memory_usage_container) {
165
10
                              COUNTER_SET(_memory_usage_container, memory_usage_container);
166
10
                          }
167
10
                          if (_hash_table_memory_usage) {
168
10
                              COUNTER_SET(_hash_table_memory_usage, hash_table_memory_usage);
169
10
                          }
170
10
                          if (_hash_table_size_counter) {
171
10
                              COUNTER_SET(_hash_table_size_counter, ht_size);
172
10
                          }
173
10
                          if (_serialize_key_arena_memory_usage) {
174
10
                              COUNTER_SET(_serialize_key_arena_memory_usage,
175
10
                                          memory_usage_arena + memory_usage_container);
176
10
                          }
177
10
                          if (_memory_used_counter) {
178
0
                              COUNTER_SET(_memory_used_counter, memory_usage_arena +
179
0
                                                                        memory_usage_container +
180
0
                                                                        hash_table_memory_usage);
181
0
                          }
182
183
                          // Update source-side counters (for PartitionedAgg source profile)
184
10
                          if (_source_memory_usage_arena) {
185
4
                              COUNTER_SET(_source_memory_usage_arena, memory_usage_arena);
186
4
                          }
187
10
                          if (_source_memory_usage_container) {
188
4
                              COUNTER_SET(_source_memory_usage_container, memory_usage_container);
189
4
                          }
190
10
                          if (_source_hash_table_memory_usage) {
191
4
                              COUNTER_SET(_source_hash_table_memory_usage,
192
4
                                          hash_table_memory_usage);
193
4
                          }
194
10
                          if (_source_hash_table_size_counter) {
195
4
                              COUNTER_SET(_source_hash_table_size_counter, ht_size);
196
4
                          }
197
10
                      }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext15update_memusageEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashMapIS7_Pc9HashCRC32IS7_EEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext15update_memusageEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashMapIS7_Pc9HashCRC32IS7_EEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext15update_memusageEvENK3$_1clINS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIPcNS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext15update_memusageEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapImPc9HashCRC32ImEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext15update_memusageEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt72EPc9HashCRC32IS5_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext15update_memusageEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt96EPc9HashCRC32IS5_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext15update_memusageEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt104EPc9HashCRC32IS5_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext15update_memusageEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm128EjEEPc9HashCRC32IS7_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext15update_memusageEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt136EPc9HashCRC32IS5_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext15update_memusageEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm256EjEEPc9HashCRC32IS7_EEEEEEvRT_
198
60
            _hash_table_data->method_variant);
199
60
}
200
201
4
size_t GroupByAggContext::get_reserve_mem_size(RuntimeState* state) const {
202
4
    size_t size_to_reserve = std::visit(
203
4
            [&](auto&& arg) -> size_t {
204
4
                using HashTableCtxType = std::decay_t<decltype(arg)>;
205
4
                if constexpr (std::is_same_v<HashTableCtxType, std::monostate>) {
206
0
                    return 0;
207
4
                } else {
208
4
                    return arg.hash_table->estimate_memory(state->batch_size());
209
4
                }
210
4
            },
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRSt9monostateEEmOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRNS_16MethodSerializedI9PHHashMapINS_9StringRefEPc11DefaultHashIS7_vEEEEEEmOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRNS_15MethodOneNumberIh9PHHashMapIhPc9HashCRC32IhEEEEEEmOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRNS_15MethodOneNumberIt9PHHashMapItPc9HashCRC32ItEEEEEEmOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRNS_15MethodOneNumberIj9PHHashMapIjPc9HashCRC32IjEEEEEEmOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRNS_15MethodOneNumberIm9PHHashMapImPc9HashCRC32ImEEEEEEmOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRNS_19MethodStringNoCacheINS_13StringHashMapIPcNS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEmOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRNS_15MethodOneNumberIN4wide7integerILm128EjEE9PHHashMapIS8_Pc9HashCRC32IS8_EEEEEEmOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRNS_15MethodOneNumberIN4wide7integerILm256EjEE9PHHashMapIS8_Pc9HashCRC32IS8_EEEEEEmOT_
groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRNS_15MethodOneNumberIj9PHHashMapIjPc14HashMixWrapperIj9HashCRC32IjEEEEEEEmOT_
Line
Count
Source
203
4
            [&](auto&& arg) -> size_t {
204
4
                using HashTableCtxType = std::decay_t<decltype(arg)>;
205
                if constexpr (std::is_same_v<HashTableCtxType, std::monostate>) {
206
                    return 0;
207
4
                } else {
208
4
                    return arg.hash_table->estimate_memory(state->batch_size());
209
4
                }
210
4
            },
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRNS_15MethodOneNumberIm9PHHashMapImPc14HashMixWrapperIm9HashCRC32ImEEEEEEEmOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI9PHHashMapIhPc9HashCRC32IhEEEEEEEEEEmOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashMapItPc9HashCRC32ItEEEEEEEEEEmOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjPc9HashCRC32IjEEEEEEEEEEmOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImPc9HashCRC32ImEEEEEEEEEEmOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjPc14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEEmOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImPc14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEEmOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashMapIS9_Pc9HashCRC32IS9_EEEEEEEEEEmOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashMapIS9_Pc9HashCRC32IS9_EEEEEEEEEEmOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRNS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIPcNS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEmOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRNS_15MethodKeysFixedI9PHHashMapImPc9HashCRC32ImEEEEEEmOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRNS_15MethodKeysFixedI9PHHashMapINS_6UInt72EPc9HashCRC32IS7_EEEEEEmOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRNS_15MethodKeysFixedI9PHHashMapINS_6UInt96EPc9HashCRC32IS7_EEEEEEmOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRNS_15MethodKeysFixedI9PHHashMapINS_7UInt104EPc9HashCRC32IS7_EEEEEEmOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRNS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm128EjEEPc9HashCRC32IS9_EEEEEEmOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRNS_15MethodKeysFixedI9PHHashMapINS_7UInt136EPc9HashCRC32IS7_EEEEEEmOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZNK5doris17GroupByAggContext20get_reserve_mem_sizeEPNS_12RuntimeStateEENK3$_0clIRNS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm256EjEEPc9HashCRC32IS9_EEEEEEmOT_
211
4
            _hash_table_data->method_variant);
212
213
4
    size_to_reserve += memory_usage_last_executing;
214
4
    return size_to_reserve;
215
4
}
216
217
54
Status GroupByAggContext::reset_hash_table() {
218
54
    return std::visit(
219
54
            Overload {
220
54
                    [&](std::monostate& arg) -> Status {
221
0
                        return Status::InternalError("Uninited hash table");
222
0
                    },
223
54
                    [&](auto& agg_method) {
224
54
                        auto& hash_table = *agg_method.hash_table;
225
54
                        using HashTableType = std::decay_t<decltype(hash_table)>;
226
227
54
                        agg_method.arena.clear();
228
54
                        agg_method.inited_iterator = false;
229
230
1.06M
                        hash_table.for_each_mapped([&](auto& mapped) {
231
1.06M
                            if (mapped) {
232
1.06M
                                destroy_agg_state(mapped);
233
1.06M
                                mapped = nullptr;
234
1.06M
                            }
235
1.06M
                        });
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_16MethodSerializedI9PHHashMapINS_9StringRefEPc11DefaultHashIS5_vEEEEEEDaRT_ENKUlSC_E_clIS6_EEDaSC_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodOneNumberIh9PHHashMapIhPc9HashCRC32IhEEEEEEDaRT_ENKUlSB_E_clIS5_EEDaSB_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodOneNumberIt9PHHashMapItPc9HashCRC32ItEEEEEEDaRT_ENKUlSB_E_clIS5_EEDaSB_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjPc9HashCRC32IjEEEEEEDaRT_ENKUlSB_E_clIS5_EEDaSB_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodOneNumberIm9PHHashMapImPc9HashCRC32ImEEEEEEDaRT_ENKUlSB_E_clIS5_EEDaSB_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_19MethodStringNoCacheINS_13StringHashMapIPcNS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEDaRT_ENKUlSC_E_clIS5_EEDaSC_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodOneNumberIN4wide7integerILm128EjEE9PHHashMapIS6_Pc9HashCRC32IS6_EEEEEEDaRT_ENKUlSE_E_clIS8_EEDaSE_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodOneNumberIN4wide7integerILm256EjEE9PHHashMapIS6_Pc9HashCRC32IS6_EEEEEEDaRT_ENKUlSE_E_clIS8_EEDaSE_
groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjPc14HashMixWrapperIj9HashCRC32IjEEEEEEEDaRT_ENKUlSD_E_clIS5_EEDaSD_
Line
Count
Source
230
1.06M
                        hash_table.for_each_mapped([&](auto& mapped) {
231
1.06M
                            if (mapped) {
232
1.06M
                                destroy_agg_state(mapped);
233
1.06M
                                mapped = nullptr;
234
1.06M
                            }
235
1.06M
                        });
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodOneNumberIm9PHHashMapImPc14HashMixWrapperIm9HashCRC32ImEEEEEEEDaRT_ENKUlSD_E_clIS5_EEDaSD_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI9PHHashMapIhPc9HashCRC32IhEEEEEEEEEEDaRT_ENKUlSF_E_clIS7_EEDaSF_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashMapItPc9HashCRC32ItEEEEEEEEEEDaRT_ENKUlSF_E_clIS7_EEDaSF_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjPc9HashCRC32IjEEEEEEEEEEDaRT_ENKUlSF_E_clIS7_EEDaSF_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImPc9HashCRC32ImEEEEEEEEEEDaRT_ENKUlSF_E_clIS7_EEDaSF_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjPc14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEEDaRT_ENKUlSH_E_clIS7_EEDaSH_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImPc14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEEDaRT_ENKUlSH_E_clIS7_EEDaSH_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashMapIS7_Pc9HashCRC32IS7_EEEEEEEEEEDaRT_ENKUlSI_E_clISA_EEDaSI_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashMapIS7_Pc9HashCRC32IS7_EEEEEEEEEEDaRT_ENKUlSI_E_clISA_EEDaSI_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIPcNS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEDaRT_ENKUlSG_E_clIS7_EEDaSG_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapImPc9HashCRC32ImEEEEEEDaRT_ENKUlSB_E_clIS5_EEDaSB_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt72EPc9HashCRC32IS5_EEEEEEDaRT_ENKUlSC_E_clIS6_EEDaSC_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt96EPc9HashCRC32IS5_EEEEEEDaRT_ENKUlSC_E_clIS6_EEDaSC_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt104EPc9HashCRC32IS5_EEEEEEDaRT_ENKUlSC_E_clIS6_EEDaSC_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm128EjEEPc9HashCRC32IS7_EEEEEEDaRT_ENKUlSE_E_clIS8_EEDaSE_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt136EPc9HashCRC32IS5_EEEEEEDaRT_ENKUlSC_E_clIS6_EEDaSC_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm256EjEEPc9HashCRC32IS7_EEEEEEDaRT_ENKUlSE_E_clIS8_EEDaSE_
236
237
54
                        if (hash_table.has_null_key_data()) {
238
2
                            destroy_agg_state(
239
2
                                    hash_table.template get_null_key_data<AggregateDataPtr>());
240
2
                        }
241
242
54
                        _agg_data_container.reset(new AggregateDataContainer(
243
54
                                sizeof(typename HashTableType::key_type),
244
54
                                ((_total_agg_state_size + _agg_state_alignment - 1) /
245
54
                                 _agg_state_alignment) *
246
54
                                        _agg_state_alignment));
247
54
                        agg_method.hash_table.reset(new HashTableType());
248
54
                        return Status::OK();
249
54
                    }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_16MethodSerializedI9PHHashMapINS_9StringRefEPc11DefaultHashIS5_vEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodOneNumberIh9PHHashMapIhPc9HashCRC32IhEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodOneNumberIt9PHHashMapItPc9HashCRC32ItEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjPc9HashCRC32IjEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodOneNumberIm9PHHashMapImPc9HashCRC32ImEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_19MethodStringNoCacheINS_13StringHashMapIPcNS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodOneNumberIN4wide7integerILm128EjEE9PHHashMapIS6_Pc9HashCRC32IS6_EEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodOneNumberIN4wide7integerILm256EjEE9PHHashMapIS6_Pc9HashCRC32IS6_EEEEEEDaRT_
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjPc14HashMixWrapperIj9HashCRC32IjEEEEEEEDaRT_
Line
Count
Source
223
52
                    [&](auto& agg_method) {
224
52
                        auto& hash_table = *agg_method.hash_table;
225
52
                        using HashTableType = std::decay_t<decltype(hash_table)>;
226
227
52
                        agg_method.arena.clear();
228
52
                        agg_method.inited_iterator = false;
229
230
52
                        hash_table.for_each_mapped([&](auto& mapped) {
231
52
                            if (mapped) {
232
52
                                destroy_agg_state(mapped);
233
52
                                mapped = nullptr;
234
52
                            }
235
52
                        });
236
237
52
                        if (hash_table.has_null_key_data()) {
238
0
                            destroy_agg_state(
239
0
                                    hash_table.template get_null_key_data<AggregateDataPtr>());
240
0
                        }
241
242
52
                        _agg_data_container.reset(new AggregateDataContainer(
243
52
                                sizeof(typename HashTableType::key_type),
244
52
                                ((_total_agg_state_size + _agg_state_alignment - 1) /
245
52
                                 _agg_state_alignment) *
246
52
                                        _agg_state_alignment));
247
52
                        agg_method.hash_table.reset(new HashTableType());
248
52
                        return Status::OK();
249
52
                    }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodOneNumberIm9PHHashMapImPc14HashMixWrapperIm9HashCRC32ImEEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI9PHHashMapIhPc9HashCRC32IhEEEEEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashMapItPc9HashCRC32ItEEEEEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjPc9HashCRC32IjEEEEEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImPc9HashCRC32ImEEEEEEEEEEDaRT_
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjPc14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEEDaRT_
Line
Count
Source
223
2
                    [&](auto& agg_method) {
224
2
                        auto& hash_table = *agg_method.hash_table;
225
2
                        using HashTableType = std::decay_t<decltype(hash_table)>;
226
227
2
                        agg_method.arena.clear();
228
2
                        agg_method.inited_iterator = false;
229
230
2
                        hash_table.for_each_mapped([&](auto& mapped) {
231
2
                            if (mapped) {
232
2
                                destroy_agg_state(mapped);
233
2
                                mapped = nullptr;
234
2
                            }
235
2
                        });
236
237
2
                        if (hash_table.has_null_key_data()) {
238
2
                            destroy_agg_state(
239
2
                                    hash_table.template get_null_key_data<AggregateDataPtr>());
240
2
                        }
241
242
2
                        _agg_data_container.reset(new AggregateDataContainer(
243
2
                                sizeof(typename HashTableType::key_type),
244
2
                                ((_total_agg_state_size + _agg_state_alignment - 1) /
245
2
                                 _agg_state_alignment) *
246
2
                                        _agg_state_alignment));
247
2
                        agg_method.hash_table.reset(new HashTableType());
248
2
                        return Status::OK();
249
2
                    }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImPc14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashMapIS7_Pc9HashCRC32IS7_EEEEEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashMapIS7_Pc9HashCRC32IS7_EEEEEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIPcNS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapImPc9HashCRC32ImEEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt72EPc9HashCRC32IS5_EEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt96EPc9HashCRC32IS5_EEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt104EPc9HashCRC32IS5_EEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm128EjEEPc9HashCRC32IS7_EEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt136EPc9HashCRC32IS5_EEEEEEDaRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext16reset_hash_tableEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm256EjEEPc9HashCRC32IS7_EEEEEEDaRT_
250
54
            _hash_table_data->method_variant);
251
54
}
252
253
// ==================== Agg state management ====================
254
255
1.06M
Status GroupByAggContext::create_agg_state(AggregateDataPtr data) {
256
2.13M
    for (int i = 0; i < _agg_evaluators.size(); ++i) {
257
1.06M
        try {
258
1.06M
            _agg_evaluators[i]->create(data + _agg_state_offsets[i]);
259
1.06M
        } catch (...) {
260
0
            for (int j = 0; j < i; ++j) {
261
0
                _agg_evaluators[j]->destroy(data + _agg_state_offsets[j]);
262
0
            }
263
0
            throw;
264
0
        }
265
1.06M
    }
266
1.06M
    return Status::OK();
267
1.06M
}
268
269
1.06M
void GroupByAggContext::destroy_agg_state(AggregateDataPtr data) {
270
2.13M
    for (int i = 0; i < _agg_evaluators.size(); ++i) {
271
1.06M
        _agg_evaluators[i]->function()->destroy(data + _agg_state_offsets[i]);
272
1.06M
    }
273
1.06M
}
274
275
46
void GroupByAggContext::close() {
276
46
    std::visit(Overload {[&](std::monostate& arg) -> void {
277
                             // Do nothing
278
3
                         },
279
46
                         [&](auto& agg_method) -> void {
280
43
                             auto& data = *agg_method.hash_table;
281
103
                             data.for_each_mapped([&](auto& mapped) {
282
103
                                 if (mapped) {
283
103
                                     destroy_agg_state(mapped);
284
103
                                     mapped = nullptr;
285
103
                                 }
286
103
                             });
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_16MethodSerializedI9PHHashMapINS_9StringRefEPc11DefaultHashIS5_vEEEEEEvRT_ENKUlSC_E_clIS6_EEDaSC_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodOneNumberIh9PHHashMapIhPc9HashCRC32IhEEEEEEvRT_ENKUlSB_E_clIS5_EEDaSB_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodOneNumberIt9PHHashMapItPc9HashCRC32ItEEEEEEvRT_ENKUlSB_E_clIS5_EEDaSB_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjPc9HashCRC32IjEEEEEEvRT_ENKUlSB_E_clIS5_EEDaSB_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodOneNumberIm9PHHashMapImPc9HashCRC32ImEEEEEEvRT_ENKUlSB_E_clIS5_EEDaSB_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_19MethodStringNoCacheINS_13StringHashMapIPcNS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEvRT_ENKUlSC_E_clIS5_EEDaSC_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodOneNumberIN4wide7integerILm128EjEE9PHHashMapIS6_Pc9HashCRC32IS6_EEEEEEvRT_ENKUlSE_E_clIS8_EEDaSE_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodOneNumberIN4wide7integerILm256EjEE9PHHashMapIS6_Pc9HashCRC32IS6_EEEEEEvRT_ENKUlSE_E_clIS8_EEDaSE_
groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjPc14HashMixWrapperIj9HashCRC32IjEEEEEEEvRT_ENKUlSD_E_clIS5_EEDaSD_
Line
Count
Source
281
16
                             data.for_each_mapped([&](auto& mapped) {
282
16
                                 if (mapped) {
283
16
                                     destroy_agg_state(mapped);
284
16
                                     mapped = nullptr;
285
16
                                 }
286
16
                             });
groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodOneNumberIm9PHHashMapImPc14HashMixWrapperIm9HashCRC32ImEEEEEEEvRT_ENKUlSD_E_clIS5_EEDaSD_
Line
Count
Source
281
62
                             data.for_each_mapped([&](auto& mapped) {
282
62
                                 if (mapped) {
283
62
                                     destroy_agg_state(mapped);
284
62
                                     mapped = nullptr;
285
62
                                 }
286
62
                             });
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI9PHHashMapIhPc9HashCRC32IhEEEEEEEEEEvRT_ENKUlSF_E_clIS7_EEDaSF_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashMapItPc9HashCRC32ItEEEEEEEEEEvRT_ENKUlSF_E_clIS7_EEDaSF_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjPc9HashCRC32IjEEEEEEEEEEvRT_ENKUlSF_E_clIS7_EEDaSF_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImPc9HashCRC32ImEEEEEEEEEEvRT_ENKUlSF_E_clIS7_EEDaSF_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjPc14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEEvRT_ENKUlSH_E_clIS7_EEDaSH_
groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImPc14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEEvRT_ENKUlSH_E_clIS7_EEDaSH_
Line
Count
Source
281
25
                             data.for_each_mapped([&](auto& mapped) {
282
25
                                 if (mapped) {
283
25
                                     destroy_agg_state(mapped);
284
25
                                     mapped = nullptr;
285
25
                                 }
286
25
                             });
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashMapIS7_Pc9HashCRC32IS7_EEEEEEEEEEvRT_ENKUlSI_E_clISA_EEDaSI_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashMapIS7_Pc9HashCRC32IS7_EEEEEEEEEEvRT_ENKUlSI_E_clISA_EEDaSI_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIPcNS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEvRT_ENKUlSG_E_clIS7_EEDaSG_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapImPc9HashCRC32ImEEEEEEvRT_ENKUlSB_E_clIS5_EEDaSB_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt72EPc9HashCRC32IS5_EEEEEEvRT_ENKUlSC_E_clIS6_EEDaSC_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt96EPc9HashCRC32IS5_EEEEEEvRT_ENKUlSC_E_clIS6_EEDaSC_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt104EPc9HashCRC32IS5_EEEEEEvRT_ENKUlSC_E_clIS6_EEDaSC_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm128EjEEPc9HashCRC32IS7_EEEEEEvRT_ENKUlSE_E_clIS8_EEDaSE_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt136EPc9HashCRC32IS5_EEEEEEvRT_ENKUlSC_E_clIS6_EEDaSC_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm256EjEEPc9HashCRC32IS7_EEEEEEvRT_ENKUlSE_E_clIS8_EEDaSE_
287
43
                             if (data.has_null_key_data()) {
288
7
                                 destroy_agg_state(
289
7
                                         data.template get_null_key_data<AggregateDataPtr>());
290
7
                             }
291
43
                         }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_16MethodSerializedI9PHHashMapINS_9StringRefEPc11DefaultHashIS5_vEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodOneNumberIh9PHHashMapIhPc9HashCRC32IhEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodOneNumberIt9PHHashMapItPc9HashCRC32ItEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjPc9HashCRC32IjEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodOneNumberIm9PHHashMapImPc9HashCRC32ImEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_19MethodStringNoCacheINS_13StringHashMapIPcNS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodOneNumberIN4wide7integerILm128EjEE9PHHashMapIS6_Pc9HashCRC32IS6_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodOneNumberIN4wide7integerILm256EjEE9PHHashMapIS6_Pc9HashCRC32IS6_EEEEEEvRT_
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjPc14HashMixWrapperIj9HashCRC32IjEEEEEEEvRT_
Line
Count
Source
279
19
                         [&](auto& agg_method) -> void {
280
19
                             auto& data = *agg_method.hash_table;
281
19
                             data.for_each_mapped([&](auto& mapped) {
282
19
                                 if (mapped) {
283
19
                                     destroy_agg_state(mapped);
284
19
                                     mapped = nullptr;
285
19
                                 }
286
19
                             });
287
19
                             if (data.has_null_key_data()) {
288
0
                                 destroy_agg_state(
289
0
                                         data.template get_null_key_data<AggregateDataPtr>());
290
0
                             }
291
19
                         }},
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodOneNumberIm9PHHashMapImPc14HashMixWrapperIm9HashCRC32ImEEEEEEEvRT_
Line
Count
Source
279
16
                         [&](auto& agg_method) -> void {
280
16
                             auto& data = *agg_method.hash_table;
281
16
                             data.for_each_mapped([&](auto& mapped) {
282
16
                                 if (mapped) {
283
16
                                     destroy_agg_state(mapped);
284
16
                                     mapped = nullptr;
285
16
                                 }
286
16
                             });
287
16
                             if (data.has_null_key_data()) {
288
0
                                 destroy_agg_state(
289
0
                                         data.template get_null_key_data<AggregateDataPtr>());
290
0
                             }
291
16
                         }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI9PHHashMapIhPc9HashCRC32IhEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashMapItPc9HashCRC32ItEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjPc9HashCRC32IjEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImPc9HashCRC32ImEEEEEEEEEEvRT_
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjPc14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEEvRT_
Line
Count
Source
279
1
                         [&](auto& agg_method) -> void {
280
1
                             auto& data = *agg_method.hash_table;
281
1
                             data.for_each_mapped([&](auto& mapped) {
282
1
                                 if (mapped) {
283
1
                                     destroy_agg_state(mapped);
284
1
                                     mapped = nullptr;
285
1
                                 }
286
1
                             });
287
1
                             if (data.has_null_key_data()) {
288
0
                                 destroy_agg_state(
289
0
                                         data.template get_null_key_data<AggregateDataPtr>());
290
0
                             }
291
1
                         }},
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImPc14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEEvRT_
Line
Count
Source
279
7
                         [&](auto& agg_method) -> void {
280
7
                             auto& data = *agg_method.hash_table;
281
7
                             data.for_each_mapped([&](auto& mapped) {
282
7
                                 if (mapped) {
283
7
                                     destroy_agg_state(mapped);
284
7
                                     mapped = nullptr;
285
7
                                 }
286
7
                             });
287
7
                             if (data.has_null_key_data()) {
288
7
                                 destroy_agg_state(
289
7
                                         data.template get_null_key_data<AggregateDataPtr>());
290
7
                             }
291
7
                         }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashMapIS7_Pc9HashCRC32IS7_EEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashMapIS7_Pc9HashCRC32IS7_EEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIPcNS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapImPc9HashCRC32ImEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt72EPc9HashCRC32IS5_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt96EPc9HashCRC32IS5_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt104EPc9HashCRC32IS5_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm128EjEEPc9HashCRC32IS7_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt136EPc9HashCRC32IS5_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext5closeEvENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm256EjEEPc9HashCRC32IS7_EEEEEEvRT_
292
46
               _hash_table_data->method_variant);
293
46
}
294
295
// ==================== Hash table write operations ====================
296
297
void GroupByAggContext::emplace_into_hash_table(AggregateDataPtr* places,
298
                                               ColumnRawPtrs& key_columns, uint32_t num_rows,
299
                                               RuntimeProfile::Counter* hash_table_compute_timer,
300
                                               RuntimeProfile::Counter* hash_table_emplace_timer,
301
76
                                               RuntimeProfile::Counter* hash_table_input_counter) {
302
76
    std::visit(Overload {[&](std::monostate& arg) -> void {
303
0
                             throw doris::Exception(ErrorCode::INTERNAL_ERROR,
304
0
                                                    "uninited hash table");
305
0
                         },
306
76
                         [&](auto& agg_method) -> void {
307
76
                             SCOPED_TIMER(hash_table_compute_timer);
308
76
                             using HashMethodType = std::decay_t<decltype(agg_method)>;
309
76
                             using AggState = typename HashMethodType::State;
310
76
                             AggState state(key_columns);
311
76
                             agg_method.init_serialized_keys(key_columns, num_rows);
312
313
1.06M
                             auto creator = [this](const auto& ctor, auto& key, auto& origin) {
314
1.06M
                                 HashMethodType::try_presis_key_and_origin(key, origin, _agg_arena);
315
1.06M
                                 auto mapped = _agg_data_container->append_data(origin);
316
1.06M
                                 auto st = create_agg_state(mapped);
317
1.06M
                                 if (!st) {
318
0
                                     throw Exception(st.code(), st.to_string());
319
0
                                 }
320
1.06M
                                 ctor(key, mapped);
321
1.06M
                             };
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_16MethodSerializedI9PHHashMapINS_9StringRefES1_11DefaultHashISH_vEEEEEEvRT_ENKUlRKSM_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSX_17FlatHashMapPolicyISH_S1_EESJ_NS_7EqualToISH_EENS_10Allocator_ISt4pairIKSH_S1_EEEE11constructorESH_SH_EEDaSP_SR_ST_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodOneNumberIh9PHHashMapIhS1_9HashCRC32IhEEEEEEvRT_ENKUlRKSL_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSW_17FlatHashMapPolicyIhS1_EESI_NS_7EqualToIhEENS_10Allocator_ISt4pairIKhS1_EEEE11constructorEhhEEDaSO_SQ_SS_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodOneNumberIt9PHHashMapItS1_9HashCRC32ItEEEEEEvRT_ENKUlRKSL_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSW_17FlatHashMapPolicyItS1_EESI_NS_7EqualToItEENS_10Allocator_ISt4pairIKtS1_EEEE11constructorEttEEDaSO_SQ_SS_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjS1_9HashCRC32IjEEEEEEvRT_ENKUlRKSL_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSW_17FlatHashMapPolicyIjS1_EESI_NS_7EqualToIjEENS_10Allocator_ISt4pairIKjS1_EEEE11constructorEjjEEDaSO_SQ_SS_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodOneNumberIm9PHHashMapImS1_9HashCRC32ImEEEEEEvRT_ENKUlRKSL_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSW_17FlatHashMapPolicyImS1_EESI_NS_7EqualToImEENS_10Allocator_ISt4pairIKmS1_EEEE11constructorEmmEEDaSO_SQ_SS_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_19MethodStringNoCacheINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEvRT_ENKUlRKSM_RT0_RT1_E_clIN20StringHashTableEmptyINS_17StringHashMapCellINS_9StringRefES1_EEE11ConstructorESY_SY_EEDaSP_SR_ST_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_19MethodStringNoCacheINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEvRT_ENKUlRKSM_RT0_RT1_E_clIN9HashTableItNS_17StringHashMapCellItS1_EE19StringHashTableHash21StringHashTableGrowerILm4EESJ_E11ConstructorEtNS_9StringRefEEEDaSP_SR_ST_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_19MethodStringNoCacheINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEvRT_ENKUlRKSM_RT0_RT1_E_clIN9HashTableIjNS_17StringHashMapCellIjS1_EE19StringHashTableHash21StringHashTableGrowerILm8EESJ_E11ConstructorEjNS_9StringRefEEEDaSP_SR_ST_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_19MethodStringNoCacheINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEvRT_ENKUlRKSM_RT0_RT1_E_clIN9HashTableImNS_17StringHashMapCellImS1_EE19StringHashTableHash21StringHashTableGrowerILm8EESJ_E11ConstructorEmNS_9StringRefEEEDaSP_SR_ST_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_19MethodStringNoCacheINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEvRT_ENKUlRKSM_RT0_RT1_E_clIN9HashTableIN4wide7integerILm128EjEENS_17StringHashMapCellISZ_S1_EE19StringHashTableHash21StringHashTableGrowerILm8EESJ_E11ConstructorESZ_NS_9StringRefEEEDaSP_SR_ST_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_19MethodStringNoCacheINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEvRT_ENKUlRKSM_RT0_RT1_E_clIN9HashTableINS_9StringRefENS_17StringHashMapCellISX_S1_EE19StringHashTableHash21StringHashTableGrowerILm8EESJ_E11ConstructorESX_SX_EEDaSP_SR_ST_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodOneNumberIN4wide7integerILm128EjEE9PHHashMapISI_S1_9HashCRC32ISI_EEEEEEvRT_ENKUlRKSO_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSZ_17FlatHashMapPolicyISI_S1_EESL_NS_7EqualToISI_EENS_10Allocator_ISt4pairIKSI_S1_EEEE11constructorESI_SI_EEDaSR_ST_SV_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodOneNumberIN4wide7integerILm256EjEE9PHHashMapISI_S1_9HashCRC32ISI_EEEEEEvRT_ENKUlRKSO_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSZ_17FlatHashMapPolicyISI_S1_EESL_NS_7EqualToISI_EENS_10Allocator_ISt4pairIKSI_S1_EEEE11constructorESI_SI_EEDaSR_ST_SV_
groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjS1_14HashMixWrapperIj9HashCRC32IjEEEEEEEvRT_ENKUlRKSN_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSY_17FlatHashMapPolicyIjS1_EESK_NS_7EqualToIjEENS_10Allocator_ISt4pairIKjS1_EEEE11constructorEjjEEDaSQ_SS_SU_
Line
Count
Source
313
1.06M
                             auto creator = [this](const auto& ctor, auto& key, auto& origin) {
314
1.06M
                                 HashMethodType::try_presis_key_and_origin(key, origin, _agg_arena);
315
1.06M
                                 auto mapped = _agg_data_container->append_data(origin);
316
1.06M
                                 auto st = create_agg_state(mapped);
317
1.06M
                                 if (!st) {
318
0
                                     throw Exception(st.code(), st.to_string());
319
0
                                 }
320
1.06M
                                 ctor(key, mapped);
321
1.06M
                             };
groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodOneNumberIm9PHHashMapImS1_14HashMixWrapperIm9HashCRC32ImEEEEEEEvRT_ENKUlRKSN_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSY_17FlatHashMapPolicyImS1_EESK_NS_7EqualToImEENS_10Allocator_ISt4pairIKmS1_EEEE11constructorEmmEEDaSQ_SS_SU_
Line
Count
Source
313
61
                             auto creator = [this](const auto& ctor, auto& key, auto& origin) {
314
61
                                 HashMethodType::try_presis_key_and_origin(key, origin, _agg_arena);
315
61
                                 auto mapped = _agg_data_container->append_data(origin);
316
61
                                 auto st = create_agg_state(mapped);
317
61
                                 if (!st) {
318
0
                                     throw Exception(st.code(), st.to_string());
319
0
                                 }
320
61
                                 ctor(key, mapped);
321
61
                             };
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI9PHHashMapIhS1_9HashCRC32IhEEEEEEEEEEvRT_ENKUlRKSP_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS10_17FlatHashMapPolicyIhS1_EESK_NS_7EqualToIhEENS_10Allocator_ISt4pairIKhS1_EEEE11constructorEhhEEDaSS_SU_SW_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashMapItS1_9HashCRC32ItEEEEEEEEEEvRT_ENKUlRKSP_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS10_17FlatHashMapPolicyItS1_EESK_NS_7EqualToItEENS_10Allocator_ISt4pairIKtS1_EEEE11constructorEttEEDaSS_SU_SW_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjS1_9HashCRC32IjEEEEEEEEEEvRT_ENKUlRKSP_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS10_17FlatHashMapPolicyIjS1_EESK_NS_7EqualToIjEENS_10Allocator_ISt4pairIKjS1_EEEE11constructorEjjEEDaSS_SU_SW_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImS1_9HashCRC32ImEEEEEEEEEEvRT_ENKUlRKSP_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS10_17FlatHashMapPolicyImS1_EESK_NS_7EqualToImEENS_10Allocator_ISt4pairIKmS1_EEEE11constructorEmmEEDaSS_SU_SW_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjS1_14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEEvRT_ENKUlRKSR_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS12_17FlatHashMapPolicyIjS1_EESM_NS_7EqualToIjEENS_10Allocator_ISt4pairIKjS1_EEEE11constructorEjjEEDaSU_SW_SY_
groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImS1_14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEEvRT_ENKUlRKSR_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS12_17FlatHashMapPolicyImS1_EESM_NS_7EqualToImEENS_10Allocator_ISt4pairIKmS1_EEEE11constructorEmmEEDaSU_SW_SY_
Line
Count
Source
313
25
                             auto creator = [this](const auto& ctor, auto& key, auto& origin) {
314
25
                                 HashMethodType::try_presis_key_and_origin(key, origin, _agg_arena);
315
25
                                 auto mapped = _agg_data_container->append_data(origin);
316
25
                                 auto st = create_agg_state(mapped);
317
25
                                 if (!st) {
318
0
                                     throw Exception(st.code(), st.to_string());
319
0
                                 }
320
25
                                 ctor(key, mapped);
321
25
                             };
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashMapISJ_S1_9HashCRC32ISJ_EEEEEEEEEEvRT_ENKUlRKSS_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS13_17FlatHashMapPolicyISJ_S1_EESN_NS_7EqualToISJ_EENS_10Allocator_ISt4pairIKSJ_S1_EEEE11constructorESJ_SJ_EEDaSV_SX_SZ_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashMapISJ_S1_9HashCRC32ISJ_EEEEEEEEEEvRT_ENKUlRKSS_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS13_17FlatHashMapPolicyISJ_S1_EESN_NS_7EqualToISJ_EENS_10Allocator_ISt4pairIKSJ_S1_EEEE11constructorESJ_SJ_EEDaSV_SX_SZ_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEvRT_ENKUlRKSQ_RT0_RT1_E_clIN20StringHashTableEmptyINS_17StringHashMapCellINS_9StringRefES1_EEE11ConstructorES12_S12_EEDaST_SV_SX_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEvRT_ENKUlRKSQ_RT0_RT1_E_clIN9HashTableItNS_17StringHashMapCellItS1_EE19StringHashTableHash21StringHashTableGrowerILm4EESL_E11ConstructorEtNS_9StringRefEEEDaST_SV_SX_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEvRT_ENKUlRKSQ_RT0_RT1_E_clIN9HashTableIjNS_17StringHashMapCellIjS1_EE19StringHashTableHash21StringHashTableGrowerILm8EESL_E11ConstructorEjNS_9StringRefEEEDaST_SV_SX_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEvRT_ENKUlRKSQ_RT0_RT1_E_clIN9HashTableImNS_17StringHashMapCellImS1_EE19StringHashTableHash21StringHashTableGrowerILm8EESL_E11ConstructorEmNS_9StringRefEEEDaST_SV_SX_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEvRT_ENKUlRKSQ_RT0_RT1_E_clIN9HashTableIN4wide7integerILm128EjEENS_17StringHashMapCellIS13_S1_EE19StringHashTableHash21StringHashTableGrowerILm8EESL_E11ConstructorES13_NS_9StringRefEEEDaST_SV_SX_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEvRT_ENKUlRKSQ_RT0_RT1_E_clIN9HashTableINS_9StringRefENS_17StringHashMapCellIS11_S1_EE19StringHashTableHash21StringHashTableGrowerILm8EESL_E11ConstructorES11_S11_EEDaST_SV_SX_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodKeysFixedI9PHHashMapImS1_9HashCRC32ImEEEEEEvRT_ENKUlRKSL_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSW_17FlatHashMapPolicyImS1_EESI_NS_7EqualToImEENS_10Allocator_ISt4pairIKmS1_EEEE11constructorEmmEEDaSO_SQ_SS_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt72ES1_9HashCRC32ISH_EEEEEEvRT_ENKUlRKSM_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSX_17FlatHashMapPolicyISH_S1_EESJ_NS_7EqualToISH_EENS_10Allocator_ISt4pairIKSH_S1_EEEE11constructorESH_SH_EEDaSP_SR_ST_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt96ES1_9HashCRC32ISH_EEEEEEvRT_ENKUlRKSM_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSX_17FlatHashMapPolicyISH_S1_EESJ_NS_7EqualToISH_EENS_10Allocator_ISt4pairIKSH_S1_EEEE11constructorESH_SH_EEDaSP_SR_ST_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt104ES1_9HashCRC32ISH_EEEEEEvRT_ENKUlRKSM_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSX_17FlatHashMapPolicyISH_S1_EESJ_NS_7EqualToISH_EENS_10Allocator_ISt4pairIKSH_S1_EEEE11constructorESH_SH_EEDaSP_SR_ST_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm128EjEES1_9HashCRC32ISJ_EEEEEEvRT_ENKUlRKSO_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSZ_17FlatHashMapPolicyISJ_S1_EESL_NS_7EqualToISJ_EENS_10Allocator_ISt4pairIKSJ_S1_EEEE11constructorESJ_SJ_EEDaSR_ST_SV_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt136ES1_9HashCRC32ISH_EEEEEEvRT_ENKUlRKSM_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSX_17FlatHashMapPolicyISH_S1_EESJ_NS_7EqualToISH_EENS_10Allocator_ISt4pairIKSH_S1_EEEE11constructorESH_SH_EEDaSP_SR_ST_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm256EjEES1_9HashCRC32ISJ_EEEEEEvRT_ENKUlRKSO_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSZ_17FlatHashMapPolicyISJ_S1_EESL_NS_7EqualToISJ_EENS_10Allocator_ISt4pairIKSJ_S1_EEEE11constructorESJ_SJ_EEDaSR_ST_SV_
322
323
76
                             auto creator_for_null_key = [&](auto& mapped) {
324
8
                                 mapped = _agg_arena.aligned_alloc(_total_agg_state_size,
325
8
                                                                   _agg_state_alignment);
326
8
                                 auto st = create_agg_state(mapped);
327
8
                                 if (!st) {
328
0
                                     throw Exception(st.code(), st.to_string());
329
0
                                 }
330
8
                             };
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI9PHHashMapIhS1_9HashCRC32IhEEEEEEEEEEvRT_ENKUlSQ_E_clIS1_EEDaSQ_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashMapItS1_9HashCRC32ItEEEEEEEEEEvRT_ENKUlSQ_E_clIS1_EEDaSQ_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjS1_9HashCRC32IjEEEEEEEEEEvRT_ENKUlSQ_E_clIS1_EEDaSQ_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImS1_9HashCRC32ImEEEEEEEEEEvRT_ENKUlSQ_E_clIS1_EEDaSQ_
groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjS1_14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEEvRT_ENKUlSS_E_clIS1_EEDaSS_
Line
Count
Source
323
2
                             auto creator_for_null_key = [&](auto& mapped) {
324
2
                                 mapped = _agg_arena.aligned_alloc(_total_agg_state_size,
325
2
                                                                   _agg_state_alignment);
326
2
                                 auto st = create_agg_state(mapped);
327
2
                                 if (!st) {
328
0
                                     throw Exception(st.code(), st.to_string());
329
0
                                 }
330
2
                             };
groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImS1_14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEEvRT_ENKUlSS_E_clIS1_EEDaSS_
Line
Count
Source
323
6
                             auto creator_for_null_key = [&](auto& mapped) {
324
6
                                 mapped = _agg_arena.aligned_alloc(_total_agg_state_size,
325
6
                                                                   _agg_state_alignment);
326
6
                                 auto st = create_agg_state(mapped);
327
6
                                 if (!st) {
328
0
                                     throw Exception(st.code(), st.to_string());
329
0
                                 }
330
6
                             };
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashMapISJ_S1_9HashCRC32ISJ_EEEEEEEEEEvRT_ENKUlST_E_clIS1_EEDaST_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashMapISJ_S1_9HashCRC32ISJ_EEEEEEEEEEvRT_ENKUlST_E_clIS1_EEDaST_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEvRT_ENKUlSR_E_clIS1_EEDaSR_
331
332
76
                             SCOPED_TIMER(hash_table_emplace_timer);
333
76
                             lazy_emplace_batch(
334
76
                                     agg_method, state, num_rows, creator, creator_for_null_key,
335
1.06M
                                     [&](uint32_t row, auto& mapped) { places[row] = mapped; });
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_16MethodSerializedI9PHHashMapINS_9StringRefES1_11DefaultHashISH_vEEEEEEvRT_ENKUljSN_E_clIS1_EEDajSN_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodOneNumberIh9PHHashMapIhS1_9HashCRC32IhEEEEEEvRT_ENKUljSM_E_clIS1_EEDajSM_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodOneNumberIt9PHHashMapItS1_9HashCRC32ItEEEEEEvRT_ENKUljSM_E_clIS1_EEDajSM_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjS1_9HashCRC32IjEEEEEEvRT_ENKUljSM_E_clIS1_EEDajSM_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodOneNumberIm9PHHashMapImS1_9HashCRC32ImEEEEEEvRT_ENKUljSM_E_clIS1_EEDajSM_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_19MethodStringNoCacheINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEvRT_ENKUljSN_E_clIS1_EEDajSN_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodOneNumberIN4wide7integerILm128EjEE9PHHashMapISI_S1_9HashCRC32ISI_EEEEEEvRT_ENKUljSP_E_clIS1_EEDajSP_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodOneNumberIN4wide7integerILm256EjEE9PHHashMapISI_S1_9HashCRC32ISI_EEEEEEvRT_ENKUljSP_E_clIS1_EEDajSP_
groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjS1_14HashMixWrapperIj9HashCRC32IjEEEEEEEvRT_ENKUljSO_E_clIS1_EEDajSO_
Line
Count
Source
335
1.06M
                                     [&](uint32_t row, auto& mapped) { places[row] = mapped; });
groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodOneNumberIm9PHHashMapImS1_14HashMixWrapperIm9HashCRC32ImEEEEEEEvRT_ENKUljSO_E_clIS1_EEDajSO_
Line
Count
Source
335
96
                                     [&](uint32_t row, auto& mapped) { places[row] = mapped; });
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI9PHHashMapIhS1_9HashCRC32IhEEEEEEEEEEvRT_ENKUljSQ_E_clIS1_EEDajSQ_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashMapItS1_9HashCRC32ItEEEEEEEEEEvRT_ENKUljSQ_E_clIS1_EEDajSQ_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjS1_9HashCRC32IjEEEEEEEEEEvRT_ENKUljSQ_E_clIS1_EEDajSQ_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImS1_9HashCRC32ImEEEEEEEEEEvRT_ENKUljSQ_E_clIS1_EEDajSQ_
groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjS1_14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEEvRT_ENKUljSS_E_clIS1_EEDajSS_
Line
Count
Source
335
2
                                     [&](uint32_t row, auto& mapped) { places[row] = mapped; });
groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImS1_14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEEvRT_ENKUljSS_E_clIS1_EEDajSS_
Line
Count
Source
335
46
                                     [&](uint32_t row, auto& mapped) { places[row] = mapped; });
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashMapISJ_S1_9HashCRC32ISJ_EEEEEEEEEEvRT_ENKUljST_E_clIS1_EEDajST_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashMapISJ_S1_9HashCRC32ISJ_EEEEEEEEEEvRT_ENKUljST_E_clIS1_EEDajST_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEvRT_ENKUljSR_E_clIS1_EEDajSR_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodKeysFixedI9PHHashMapImS1_9HashCRC32ImEEEEEEvRT_ENKUljSM_E_clIS1_EEDajSM_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt72ES1_9HashCRC32ISH_EEEEEEvRT_ENKUljSN_E_clIS1_EEDajSN_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt96ES1_9HashCRC32ISH_EEEEEEvRT_ENKUljSN_E_clIS1_EEDajSN_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt104ES1_9HashCRC32ISH_EEEEEEvRT_ENKUljSN_E_clIS1_EEDajSN_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm128EjEES1_9HashCRC32ISJ_EEEEEEvRT_ENKUljSP_E_clIS1_EEDajSP_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt136ES1_9HashCRC32ISH_EEEEEEvRT_ENKUljSN_E_clIS1_EEDajSN_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm256EjEES1_9HashCRC32ISJ_EEEEEEvRT_ENKUljSP_E_clIS1_EEDajSP_
336
337
76
                             COUNTER_UPDATE(hash_table_input_counter, num_rows);
338
76
                         }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_16MethodSerializedI9PHHashMapINS_9StringRefES1_11DefaultHashISH_vEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodOneNumberIh9PHHashMapIhS1_9HashCRC32IhEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodOneNumberIt9PHHashMapItS1_9HashCRC32ItEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjS1_9HashCRC32IjEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodOneNumberIm9PHHashMapImS1_9HashCRC32ImEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_19MethodStringNoCacheINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodOneNumberIN4wide7integerILm128EjEE9PHHashMapISI_S1_9HashCRC32ISI_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodOneNumberIN4wide7integerILm256EjEE9PHHashMapISI_S1_9HashCRC32ISI_EEEEEEvRT_
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjS1_14HashMixWrapperIj9HashCRC32IjEEEEEEEvRT_
Line
Count
Source
306
49
                         [&](auto& agg_method) -> void {
307
49
                             SCOPED_TIMER(hash_table_compute_timer);
308
49
                             using HashMethodType = std::decay_t<decltype(agg_method)>;
309
49
                             using AggState = typename HashMethodType::State;
310
49
                             AggState state(key_columns);
311
49
                             agg_method.init_serialized_keys(key_columns, num_rows);
312
313
49
                             auto creator = [this](const auto& ctor, auto& key, auto& origin) {
314
49
                                 HashMethodType::try_presis_key_and_origin(key, origin, _agg_arena);
315
49
                                 auto mapped = _agg_data_container->append_data(origin);
316
49
                                 auto st = create_agg_state(mapped);
317
49
                                 if (!st) {
318
49
                                     throw Exception(st.code(), st.to_string());
319
49
                                 }
320
49
                                 ctor(key, mapped);
321
49
                             };
322
323
49
                             auto creator_for_null_key = [&](auto& mapped) {
324
49
                                 mapped = _agg_arena.aligned_alloc(_total_agg_state_size,
325
49
                                                                   _agg_state_alignment);
326
49
                                 auto st = create_agg_state(mapped);
327
49
                                 if (!st) {
328
49
                                     throw Exception(st.code(), st.to_string());
329
49
                                 }
330
49
                             };
331
332
49
                             SCOPED_TIMER(hash_table_emplace_timer);
333
49
                             lazy_emplace_batch(
334
49
                                     agg_method, state, num_rows, creator, creator_for_null_key,
335
49
                                     [&](uint32_t row, auto& mapped) { places[row] = mapped; });
336
337
49
                             COUNTER_UPDATE(hash_table_input_counter, num_rows);
338
49
                         }},
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodOneNumberIm9PHHashMapImS1_14HashMixWrapperIm9HashCRC32ImEEEEEEEvRT_
Line
Count
Source
306
17
                         [&](auto& agg_method) -> void {
307
17
                             SCOPED_TIMER(hash_table_compute_timer);
308
17
                             using HashMethodType = std::decay_t<decltype(agg_method)>;
309
17
                             using AggState = typename HashMethodType::State;
310
17
                             AggState state(key_columns);
311
17
                             agg_method.init_serialized_keys(key_columns, num_rows);
312
313
17
                             auto creator = [this](const auto& ctor, auto& key, auto& origin) {
314
17
                                 HashMethodType::try_presis_key_and_origin(key, origin, _agg_arena);
315
17
                                 auto mapped = _agg_data_container->append_data(origin);
316
17
                                 auto st = create_agg_state(mapped);
317
17
                                 if (!st) {
318
17
                                     throw Exception(st.code(), st.to_string());
319
17
                                 }
320
17
                                 ctor(key, mapped);
321
17
                             };
322
323
17
                             auto creator_for_null_key = [&](auto& mapped) {
324
17
                                 mapped = _agg_arena.aligned_alloc(_total_agg_state_size,
325
17
                                                                   _agg_state_alignment);
326
17
                                 auto st = create_agg_state(mapped);
327
17
                                 if (!st) {
328
17
                                     throw Exception(st.code(), st.to_string());
329
17
                                 }
330
17
                             };
331
332
17
                             SCOPED_TIMER(hash_table_emplace_timer);
333
17
                             lazy_emplace_batch(
334
17
                                     agg_method, state, num_rows, creator, creator_for_null_key,
335
17
                                     [&](uint32_t row, auto& mapped) { places[row] = mapped; });
336
337
17
                             COUNTER_UPDATE(hash_table_input_counter, num_rows);
338
17
                         }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI9PHHashMapIhS1_9HashCRC32IhEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashMapItS1_9HashCRC32ItEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjS1_9HashCRC32IjEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImS1_9HashCRC32ImEEEEEEEEEEvRT_
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjS1_14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEEvRT_
Line
Count
Source
306
2
                         [&](auto& agg_method) -> void {
307
2
                             SCOPED_TIMER(hash_table_compute_timer);
308
2
                             using HashMethodType = std::decay_t<decltype(agg_method)>;
309
2
                             using AggState = typename HashMethodType::State;
310
2
                             AggState state(key_columns);
311
2
                             agg_method.init_serialized_keys(key_columns, num_rows);
312
313
2
                             auto creator = [this](const auto& ctor, auto& key, auto& origin) {
314
2
                                 HashMethodType::try_presis_key_and_origin(key, origin, _agg_arena);
315
2
                                 auto mapped = _agg_data_container->append_data(origin);
316
2
                                 auto st = create_agg_state(mapped);
317
2
                                 if (!st) {
318
2
                                     throw Exception(st.code(), st.to_string());
319
2
                                 }
320
2
                                 ctor(key, mapped);
321
2
                             };
322
323
2
                             auto creator_for_null_key = [&](auto& mapped) {
324
2
                                 mapped = _agg_arena.aligned_alloc(_total_agg_state_size,
325
2
                                                                   _agg_state_alignment);
326
2
                                 auto st = create_agg_state(mapped);
327
2
                                 if (!st) {
328
2
                                     throw Exception(st.code(), st.to_string());
329
2
                                 }
330
2
                             };
331
332
2
                             SCOPED_TIMER(hash_table_emplace_timer);
333
2
                             lazy_emplace_batch(
334
2
                                     agg_method, state, num_rows, creator, creator_for_null_key,
335
2
                                     [&](uint32_t row, auto& mapped) { places[row] = mapped; });
336
337
2
                             COUNTER_UPDATE(hash_table_input_counter, num_rows);
338
2
                         }},
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImS1_14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEEvRT_
Line
Count
Source
306
8
                         [&](auto& agg_method) -> void {
307
8
                             SCOPED_TIMER(hash_table_compute_timer);
308
8
                             using HashMethodType = std::decay_t<decltype(agg_method)>;
309
8
                             using AggState = typename HashMethodType::State;
310
8
                             AggState state(key_columns);
311
8
                             agg_method.init_serialized_keys(key_columns, num_rows);
312
313
8
                             auto creator = [this](const auto& ctor, auto& key, auto& origin) {
314
8
                                 HashMethodType::try_presis_key_and_origin(key, origin, _agg_arena);
315
8
                                 auto mapped = _agg_data_container->append_data(origin);
316
8
                                 auto st = create_agg_state(mapped);
317
8
                                 if (!st) {
318
8
                                     throw Exception(st.code(), st.to_string());
319
8
                                 }
320
8
                                 ctor(key, mapped);
321
8
                             };
322
323
8
                             auto creator_for_null_key = [&](auto& mapped) {
324
8
                                 mapped = _agg_arena.aligned_alloc(_total_agg_state_size,
325
8
                                                                   _agg_state_alignment);
326
8
                                 auto st = create_agg_state(mapped);
327
8
                                 if (!st) {
328
8
                                     throw Exception(st.code(), st.to_string());
329
8
                                 }
330
8
                             };
331
332
8
                             SCOPED_TIMER(hash_table_emplace_timer);
333
8
                             lazy_emplace_batch(
334
8
                                     agg_method, state, num_rows, creator, creator_for_null_key,
335
8
                                     [&](uint32_t row, auto& mapped) { places[row] = mapped; });
336
337
8
                             COUNTER_UPDATE(hash_table_input_counter, num_rows);
338
8
                         }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashMapISJ_S1_9HashCRC32ISJ_EEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashMapISJ_S1_9HashCRC32ISJ_EEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodKeysFixedI9PHHashMapImS1_9HashCRC32ImEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt72ES1_9HashCRC32ISH_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt96ES1_9HashCRC32ISH_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt104ES1_9HashCRC32ISH_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm128EjEES1_9HashCRC32ISJ_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt136ES1_9HashCRC32ISH_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext23emplace_into_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjPNS_14RuntimeProfile7CounterESC_SC_ENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm256EjEES1_9HashCRC32ISJ_EEEEEEvRT_
339
76
               _hash_table_data->method_variant);
340
76
}
341
342
void GroupByAggContext::find_in_hash_table(AggregateDataPtr* places, ColumnRawPtrs& key_columns,
343
3
                                          uint32_t num_rows) {
344
3
    std::visit(Overload {[&](std::monostate& arg) -> void {
345
0
                             throw doris::Exception(ErrorCode::INTERNAL_ERROR,
346
0
                                                    "uninited hash table");
347
0
                         },
348
3
                         [&](auto& agg_method) -> void {
349
3
                             using HashMethodType = std::decay_t<decltype(agg_method)>;
350
3
                             using AggState = typename HashMethodType::State;
351
3
                             AggState state(key_columns);
352
3
                             agg_method.init_serialized_keys(key_columns, num_rows);
353
354
3
                             find_batch(agg_method, state, num_rows,
355
15
                                        [&](uint32_t row, auto& find_result) {
356
15
                                            if (find_result.is_found()) {
357
5
                                                places[row] = find_result.get_mapped();
358
10
                                            } else {
359
10
                                                places[row] = nullptr;
360
10
                                            }
361
15
                                        });
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_16MethodSerializedI9PHHashMapINS_9StringRefES1_11DefaultHashISE_vEEEEEEvRT_ENKUljSK_E_clINS_14ColumnsHashing20columns_hashing_impl14FindResultImplIS1_EEEEDajSK_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodOneNumberIh9PHHashMapIhS1_9HashCRC32IhEEEEEEvRT_ENKUljSJ_E_clINS_14ColumnsHashing20columns_hashing_impl14FindResultImplIS1_EEEEDajSJ_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodOneNumberIt9PHHashMapItS1_9HashCRC32ItEEEEEEvRT_ENKUljSJ_E_clINS_14ColumnsHashing20columns_hashing_impl14FindResultImplIS1_EEEEDajSJ_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjS1_9HashCRC32IjEEEEEEvRT_ENKUljSJ_E_clINS_14ColumnsHashing20columns_hashing_impl14FindResultImplIS1_EEEEDajSJ_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodOneNumberIm9PHHashMapImS1_9HashCRC32ImEEEEEEvRT_ENKUljSJ_E_clINS_14ColumnsHashing20columns_hashing_impl14FindResultImplIS1_EEEEDajSJ_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_19MethodStringNoCacheINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEvRT_ENKUljSK_E_clINS_14ColumnsHashing20columns_hashing_impl14FindResultImplIS1_EEEEDajSK_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodOneNumberIN4wide7integerILm128EjEE9PHHashMapISF_S1_9HashCRC32ISF_EEEEEEvRT_ENKUljSM_E_clINS_14ColumnsHashing20columns_hashing_impl14FindResultImplIS1_EEEEDajSM_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodOneNumberIN4wide7integerILm256EjEE9PHHashMapISF_S1_9HashCRC32ISF_EEEEEEvRT_ENKUljSM_E_clINS_14ColumnsHashing20columns_hashing_impl14FindResultImplIS1_EEEEDajSM_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjS1_14HashMixWrapperIj9HashCRC32IjEEEEEEEvRT_ENKUljSL_E_clINS_14ColumnsHashing20columns_hashing_impl14FindResultImplIS1_EEEEDajSL_
groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodOneNumberIm9PHHashMapImS1_14HashMixWrapperIm9HashCRC32ImEEEEEEEvRT_ENKUljSL_E_clINS_14ColumnsHashing20columns_hashing_impl14FindResultImplIS1_EEEEDajSL_
Line
Count
Source
355
15
                                        [&](uint32_t row, auto& find_result) {
356
15
                                            if (find_result.is_found()) {
357
5
                                                places[row] = find_result.get_mapped();
358
10
                                            } else {
359
10
                                                places[row] = nullptr;
360
10
                                            }
361
15
                                        });
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI9PHHashMapIhS1_9HashCRC32IhEEEEEEEEEEvRT_ENKUljSN_E_clINS_14ColumnsHashing20columns_hashing_impl14FindResultImplIS1_EEEEDajSN_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashMapItS1_9HashCRC32ItEEEEEEEEEEvRT_ENKUljSN_E_clINS_14ColumnsHashing20columns_hashing_impl14FindResultImplIS1_EEEEDajSN_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjS1_9HashCRC32IjEEEEEEEEEEvRT_ENKUljSN_E_clINS_14ColumnsHashing20columns_hashing_impl14FindResultImplIS1_EEEEDajSN_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImS1_9HashCRC32ImEEEEEEEEEEvRT_ENKUljSN_E_clINS_14ColumnsHashing20columns_hashing_impl14FindResultImplIS1_EEEEDajSN_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjS1_14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEEvRT_ENKUljSP_E_clINS_14ColumnsHashing20columns_hashing_impl14FindResultImplIS1_EEEEDajSP_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImS1_14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEEvRT_ENKUljSP_E_clINS_14ColumnsHashing20columns_hashing_impl14FindResultImplIS1_EEEEDajSP_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashMapISG_S1_9HashCRC32ISG_EEEEEEEEEEvRT_ENKUljSQ_E_clINS_14ColumnsHashing20columns_hashing_impl14FindResultImplIS1_EEEEDajSQ_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashMapISG_S1_9HashCRC32ISG_EEEEEEEEEEvRT_ENKUljSQ_E_clINS_14ColumnsHashing20columns_hashing_impl14FindResultImplIS1_EEEEDajSQ_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEvRT_ENKUljSO_E_clINS_14ColumnsHashing20columns_hashing_impl14FindResultImplIS1_EEEEDajSO_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodKeysFixedI9PHHashMapImS1_9HashCRC32ImEEEEEEvRT_ENKUljSJ_E_clINS_14ColumnsHashing20columns_hashing_impl14FindResultImplIS1_EEEEDajSJ_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt72ES1_9HashCRC32ISE_EEEEEEvRT_ENKUljSK_E_clINS_14ColumnsHashing20columns_hashing_impl14FindResultImplIS1_EEEEDajSK_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt96ES1_9HashCRC32ISE_EEEEEEvRT_ENKUljSK_E_clINS_14ColumnsHashing20columns_hashing_impl14FindResultImplIS1_EEEEDajSK_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt104ES1_9HashCRC32ISE_EEEEEEvRT_ENKUljSK_E_clINS_14ColumnsHashing20columns_hashing_impl14FindResultImplIS1_EEEEDajSK_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm128EjEES1_9HashCRC32ISG_EEEEEEvRT_ENKUljSM_E_clINS_14ColumnsHashing20columns_hashing_impl14FindResultImplIS1_EEEEDajSM_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt136ES1_9HashCRC32ISE_EEEEEEvRT_ENKUljSK_E_clINS_14ColumnsHashing20columns_hashing_impl14FindResultImplIS1_EEEEDajSK_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm256EjEES1_9HashCRC32ISG_EEEEEEvRT_ENKUljSM_E_clINS_14ColumnsHashing20columns_hashing_impl14FindResultImplIS1_EEEEDajSM_
362
3
                         }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_16MethodSerializedI9PHHashMapINS_9StringRefES1_11DefaultHashISE_vEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodOneNumberIh9PHHashMapIhS1_9HashCRC32IhEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodOneNumberIt9PHHashMapItS1_9HashCRC32ItEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjS1_9HashCRC32IjEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodOneNumberIm9PHHashMapImS1_9HashCRC32ImEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_19MethodStringNoCacheINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodOneNumberIN4wide7integerILm128EjEE9PHHashMapISF_S1_9HashCRC32ISF_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodOneNumberIN4wide7integerILm256EjEE9PHHashMapISF_S1_9HashCRC32ISF_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjS1_14HashMixWrapperIj9HashCRC32IjEEEEEEEvRT_
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodOneNumberIm9PHHashMapImS1_14HashMixWrapperIm9HashCRC32ImEEEEEEEvRT_
Line
Count
Source
348
3
                         [&](auto& agg_method) -> void {
349
3
                             using HashMethodType = std::decay_t<decltype(agg_method)>;
350
3
                             using AggState = typename HashMethodType::State;
351
3
                             AggState state(key_columns);
352
3
                             agg_method.init_serialized_keys(key_columns, num_rows);
353
354
3
                             find_batch(agg_method, state, num_rows,
355
3
                                        [&](uint32_t row, auto& find_result) {
356
3
                                            if (find_result.is_found()) {
357
3
                                                places[row] = find_result.get_mapped();
358
3
                                            } else {
359
3
                                                places[row] = nullptr;
360
3
                                            }
361
3
                                        });
362
3
                         }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI9PHHashMapIhS1_9HashCRC32IhEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashMapItS1_9HashCRC32ItEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjS1_9HashCRC32IjEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImS1_9HashCRC32ImEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjS1_14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImS1_14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashMapISG_S1_9HashCRC32ISG_EEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashMapISG_S1_9HashCRC32ISG_EEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodKeysFixedI9PHHashMapImS1_9HashCRC32ImEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt72ES1_9HashCRC32ISE_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt96ES1_9HashCRC32ISE_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt104ES1_9HashCRC32ISE_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm128EjEES1_9HashCRC32ISG_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt136ES1_9HashCRC32ISE_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext18find_in_hash_tableEPPcRSt6vectorIPKNS_7IColumnESaIS6_EEjENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm256EjEES1_9HashCRC32ISG_EEEEEEvRT_
363
3
               _hash_table_data->method_variant);
364
3
}
365
366
bool GroupByAggContext::emplace_into_hash_table_limit(AggregateDataPtr* places, Block* block,
367
                                                     const std::vector<int>* key_locs,
368
                                                     ColumnRawPtrs& key_columns,
369
4
                                                     uint32_t num_rows) {
370
4
    return std::visit(
371
4
            Overload {[&](std::monostate& arg) {
372
0
                          throw doris::Exception(ErrorCode::INTERNAL_ERROR, "uninited hash table");
373
0
                          return true;
374
0
                      },
375
4
                      [&](auto&& agg_method) -> bool {
376
4
                          SCOPED_TIMER(_hash_table_compute_timer);
377
4
                          using HashMethodType = std::decay_t<decltype(agg_method)>;
378
4
                          using AggState = typename HashMethodType::State;
379
380
4
                          bool need_filter = false;
381
4
                          {
382
4
                              SCOPED_TIMER(_hash_table_limit_compute_timer);
383
4
                              need_filter = do_limit_filter(num_rows, key_columns);
384
4
                          }
385
386
4
                          auto& need_computes = _need_computes;
387
4
                          if (auto need_agg =
388
4
                                      std::find(need_computes.begin(), need_computes.end(), 1);
389
4
                              need_agg != need_computes.end()) {
390
4
                              if (need_filter) {
391
4
                                  Block::filter_block_internal(block, need_computes);
392
4
                                  if (key_locs) {
393
8
                                      for (int i = 0; i < key_locs->size(); ++i) {
394
4
                                          key_columns[i] =
395
4
                                                  block->get_by_position((*key_locs)[i])
396
4
                                                          .column.get();
397
4
                                      }
398
4
                                  }
399
4
                                  num_rows = (uint32_t)block->rows();
400
4
                              }
401
402
4
                              AggState state(key_columns);
403
4
                              agg_method.init_serialized_keys(key_columns, num_rows);
404
4
                              size_t i = 0;
405
406
4
                              auto creator = [&](const auto& ctor, auto& key, auto& origin) {
407
1
                                  try {
408
1
                                      HashMethodType::try_presis_key_and_origin(key, origin,
409
1
                                                                                _agg_arena);
410
1
                                      auto mapped = _agg_data_container->append_data(origin);
411
1
                                      auto st = create_agg_state(mapped);
412
1
                                      if (!st) {
413
0
                                          throw Exception(st.code(), st.to_string());
414
0
                                      }
415
1
                                      ctor(key, mapped);
416
1
                                      refresh_top_limit(i, key_columns);
417
1
                                  } catch (...) {
418
0
                                      ctor(key, nullptr);
419
0
                                      throw;
420
0
                                  }
421
1
                              };
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_16MethodSerializedI9PHHashMapINS_9StringRefES1_11DefaultHashISK_vEEEEEEbOT_ENKUlRKSQ_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS11_17FlatHashMapPolicyISK_S1_EESM_NS_7EqualToISK_EENS_10Allocator_ISt4pairIKSK_S1_EEEE11constructorESK_SK_EEDaST_SV_SX_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIh9PHHashMapIhS1_9HashCRC32IhEEEEEEbOT_ENKUlRKSP_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS10_17FlatHashMapPolicyIhS1_EESL_NS_7EqualToIhEENS_10Allocator_ISt4pairIKhS1_EEEE11constructorEhhEEDaSS_SU_SW_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIt9PHHashMapItS1_9HashCRC32ItEEEEEEbOT_ENKUlRKSP_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS10_17FlatHashMapPolicyItS1_EESL_NS_7EqualToItEENS_10Allocator_ISt4pairIKtS1_EEEE11constructorEttEEDaSS_SU_SW_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIj9PHHashMapIjS1_9HashCRC32IjEEEEEEbOT_ENKUlRKSP_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS10_17FlatHashMapPolicyIjS1_EESL_NS_7EqualToIjEENS_10Allocator_ISt4pairIKjS1_EEEE11constructorEjjEEDaSS_SU_SW_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIm9PHHashMapImS1_9HashCRC32ImEEEEEEbOT_ENKUlRKSP_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS10_17FlatHashMapPolicyImS1_EESL_NS_7EqualToImEENS_10Allocator_ISt4pairIKmS1_EEEE11constructorEmmEEDaSS_SU_SW_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_19MethodStringNoCacheINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEbOT_ENKUlRKSQ_RT0_RT1_E_clIN20StringHashTableEmptyINS_17StringHashMapCellINS_9StringRefES1_EEE11ConstructorES12_S12_EEDaST_SV_SX_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_19MethodStringNoCacheINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEbOT_ENKUlRKSQ_RT0_RT1_E_clIN9HashTableItNS_17StringHashMapCellItS1_EE19StringHashTableHash21StringHashTableGrowerILm4EESM_E11ConstructorEtNS_9StringRefEEEDaST_SV_SX_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_19MethodStringNoCacheINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEbOT_ENKUlRKSQ_RT0_RT1_E_clIN9HashTableIjNS_17StringHashMapCellIjS1_EE19StringHashTableHash21StringHashTableGrowerILm8EESM_E11ConstructorEjNS_9StringRefEEEDaST_SV_SX_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_19MethodStringNoCacheINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEbOT_ENKUlRKSQ_RT0_RT1_E_clIN9HashTableImNS_17StringHashMapCellImS1_EE19StringHashTableHash21StringHashTableGrowerILm8EESM_E11ConstructorEmNS_9StringRefEEEDaST_SV_SX_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_19MethodStringNoCacheINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEbOT_ENKUlRKSQ_RT0_RT1_E_clIN9HashTableIN4wide7integerILm128EjEENS_17StringHashMapCellIS13_S1_EE19StringHashTableHash21StringHashTableGrowerILm8EESM_E11ConstructorES13_NS_9StringRefEEEDaST_SV_SX_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_19MethodStringNoCacheINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEbOT_ENKUlRKSQ_RT0_RT1_E_clIN9HashTableINS_9StringRefENS_17StringHashMapCellIS11_S1_EE19StringHashTableHash21StringHashTableGrowerILm8EESM_E11ConstructorES11_S11_EEDaST_SV_SX_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIN4wide7integerILm128EjEE9PHHashMapISL_S1_9HashCRC32ISL_EEEEEEbOT_ENKUlRKSS_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS13_17FlatHashMapPolicyISL_S1_EESO_NS_7EqualToISL_EENS_10Allocator_ISt4pairIKSL_S1_EEEE11constructorESL_SL_EEDaSV_SX_SZ_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIN4wide7integerILm256EjEE9PHHashMapISL_S1_9HashCRC32ISL_EEEEEEbOT_ENKUlRKSS_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS13_17FlatHashMapPolicyISL_S1_EESO_NS_7EqualToISL_EENS_10Allocator_ISt4pairIKSL_S1_EEEE11constructorESL_SL_EEDaSV_SX_SZ_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIj9PHHashMapIjS1_14HashMixWrapperIj9HashCRC32IjEEEEEEEbOT_ENKUlRKSR_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS12_17FlatHashMapPolicyIjS1_EESN_NS_7EqualToIjEENS_10Allocator_ISt4pairIKjS1_EEEE11constructorEjjEEDaSU_SW_SY_
groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIm9PHHashMapImS1_14HashMixWrapperIm9HashCRC32ImEEEEEEEbOT_ENKUlRKSR_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS12_17FlatHashMapPolicyImS1_EESN_NS_7EqualToImEENS_10Allocator_ISt4pairIKmS1_EEEE11constructorEmmEEDaSU_SW_SY_
Line
Count
Source
406
1
                              auto creator = [&](const auto& ctor, auto& key, auto& origin) {
407
1
                                  try {
408
1
                                      HashMethodType::try_presis_key_and_origin(key, origin,
409
1
                                                                                _agg_arena);
410
1
                                      auto mapped = _agg_data_container->append_data(origin);
411
1
                                      auto st = create_agg_state(mapped);
412
1
                                      if (!st) {
413
0
                                          throw Exception(st.code(), st.to_string());
414
0
                                      }
415
1
                                      ctor(key, mapped);
416
1
                                      refresh_top_limit(i, key_columns);
417
1
                                  } catch (...) {
418
0
                                      ctor(key, nullptr);
419
0
                                      throw;
420
0
                                  }
421
1
                              };
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI9PHHashMapIhS1_9HashCRC32IhEEEEEEEEEEbOT_ENKUlRKST_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS14_17FlatHashMapPolicyIhS1_EESN_NS_7EqualToIhEENS_10Allocator_ISt4pairIKhS1_EEEE11constructorEhhEEDaSW_SY_S10_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashMapItS1_9HashCRC32ItEEEEEEEEEEbOT_ENKUlRKST_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS14_17FlatHashMapPolicyItS1_EESN_NS_7EqualToItEENS_10Allocator_ISt4pairIKtS1_EEEE11constructorEttEEDaSW_SY_S10_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjS1_9HashCRC32IjEEEEEEEEEEbOT_ENKUlRKST_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS14_17FlatHashMapPolicyIjS1_EESN_NS_7EqualToIjEENS_10Allocator_ISt4pairIKjS1_EEEE11constructorEjjEEDaSW_SY_S10_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImS1_9HashCRC32ImEEEEEEEEEEbOT_ENKUlRKST_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS14_17FlatHashMapPolicyImS1_EESN_NS_7EqualToImEENS_10Allocator_ISt4pairIKmS1_EEEE11constructorEmmEEDaSW_SY_S10_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjS1_14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEEbOT_ENKUlRKSV_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS16_17FlatHashMapPolicyIjS1_EESP_NS_7EqualToIjEENS_10Allocator_ISt4pairIKjS1_EEEE11constructorEjjEEDaSY_S10_S12_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImS1_14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEEbOT_ENKUlRKSV_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS16_17FlatHashMapPolicyImS1_EESP_NS_7EqualToImEENS_10Allocator_ISt4pairIKmS1_EEEE11constructorEmmEEDaSY_S10_S12_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashMapISM_S1_9HashCRC32ISM_EEEEEEEEEEbOT_ENKUlRKSW_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS17_17FlatHashMapPolicyISM_S1_EESQ_NS_7EqualToISM_EENS_10Allocator_ISt4pairIKSM_S1_EEEE11constructorESM_SM_EEDaSZ_S11_S13_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashMapISM_S1_9HashCRC32ISM_EEEEEEEEEEbOT_ENKUlRKSW_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS17_17FlatHashMapPolicyISM_S1_EESQ_NS_7EqualToISM_EENS_10Allocator_ISt4pairIKSM_S1_EEEE11constructorESM_SM_EEDaSZ_S11_S13_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEbOT_ENKUlRKSU_RT0_RT1_E_clIN20StringHashTableEmptyINS_17StringHashMapCellINS_9StringRefES1_EEE11ConstructorES16_S16_EEDaSX_SZ_S11_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEbOT_ENKUlRKSU_RT0_RT1_E_clIN9HashTableItNS_17StringHashMapCellItS1_EE19StringHashTableHash21StringHashTableGrowerILm4EESO_E11ConstructorEtNS_9StringRefEEEDaSX_SZ_S11_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEbOT_ENKUlRKSU_RT0_RT1_E_clIN9HashTableIjNS_17StringHashMapCellIjS1_EE19StringHashTableHash21StringHashTableGrowerILm8EESO_E11ConstructorEjNS_9StringRefEEEDaSX_SZ_S11_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEbOT_ENKUlRKSU_RT0_RT1_E_clIN9HashTableImNS_17StringHashMapCellImS1_EE19StringHashTableHash21StringHashTableGrowerILm8EESO_E11ConstructorEmNS_9StringRefEEEDaSX_SZ_S11_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEbOT_ENKUlRKSU_RT0_RT1_E_clIN9HashTableIN4wide7integerILm128EjEENS_17StringHashMapCellIS17_S1_EE19StringHashTableHash21StringHashTableGrowerILm8EESO_E11ConstructorES17_NS_9StringRefEEEDaSX_SZ_S11_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEbOT_ENKUlRKSU_RT0_RT1_E_clIN9HashTableINS_9StringRefENS_17StringHashMapCellIS15_S1_EE19StringHashTableHash21StringHashTableGrowerILm8EESO_E11ConstructorES15_S15_EEDaSX_SZ_S11_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapImS1_9HashCRC32ImEEEEEEbOT_ENKUlRKSP_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS10_17FlatHashMapPolicyImS1_EESL_NS_7EqualToImEENS_10Allocator_ISt4pairIKmS1_EEEE11constructorEmmEEDaSS_SU_SW_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapINS_6UInt72ES1_9HashCRC32ISK_EEEEEEbOT_ENKUlRKSQ_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS11_17FlatHashMapPolicyISK_S1_EESM_NS_7EqualToISK_EENS_10Allocator_ISt4pairIKSK_S1_EEEE11constructorESK_SK_EEDaST_SV_SX_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapINS_6UInt96ES1_9HashCRC32ISK_EEEEEEbOT_ENKUlRKSQ_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS11_17FlatHashMapPolicyISK_S1_EESM_NS_7EqualToISK_EENS_10Allocator_ISt4pairIKSK_S1_EEEE11constructorESK_SK_EEDaST_SV_SX_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapINS_7UInt104ES1_9HashCRC32ISK_EEEEEEbOT_ENKUlRKSQ_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS11_17FlatHashMapPolicyISK_S1_EESM_NS_7EqualToISK_EENS_10Allocator_ISt4pairIKSK_S1_EEEE11constructorESK_SK_EEDaST_SV_SX_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm128EjEES1_9HashCRC32ISM_EEEEEEbOT_ENKUlRKSS_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS13_17FlatHashMapPolicyISM_S1_EESO_NS_7EqualToISM_EENS_10Allocator_ISt4pairIKSM_S1_EEEE11constructorESM_SM_EEDaSV_SX_SZ_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapINS_7UInt136ES1_9HashCRC32ISK_EEEEEEbOT_ENKUlRKSQ_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS11_17FlatHashMapPolicyISK_S1_EESM_NS_7EqualToISK_EENS_10Allocator_ISt4pairIKSK_S1_EEEE11constructorESK_SK_EEDaST_SV_SX_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm256EjEES1_9HashCRC32ISM_EEEEEEbOT_ENKUlRKSS_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINS13_17FlatHashMapPolicyISM_S1_EESO_NS_7EqualToISM_EENS_10Allocator_ISt4pairIKSM_S1_EEEE11constructorESM_SM_EEDaSV_SX_SZ_
422
423
4
                              auto creator_for_null_key = [&](auto& mapped) {
424
1
                                  mapped = _agg_arena.aligned_alloc(_total_agg_state_size,
425
1
                                                                    _agg_state_alignment);
426
1
                                  auto st = create_agg_state(mapped);
427
1
                                  if (!st) {
428
0
                                      throw Exception(st.code(), st.to_string());
429
0
                                  }
430
1
                                  refresh_top_limit(i, key_columns);
431
1
                              };
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI9PHHashMapIhS1_9HashCRC32IhEEEEEEEEEEbOT_ENKUlRST_E_clIS1_EEDaSV_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashMapItS1_9HashCRC32ItEEEEEEEEEEbOT_ENKUlRST_E_clIS1_EEDaSV_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjS1_9HashCRC32IjEEEEEEEEEEbOT_ENKUlRST_E_clIS1_EEDaSV_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImS1_9HashCRC32ImEEEEEEEEEEbOT_ENKUlRST_E_clIS1_EEDaSV_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjS1_14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEEbOT_ENKUlRSV_E_clIS1_EEDaSX_
groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImS1_14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEEbOT_ENKUlRSV_E_clIS1_EEDaSX_
Line
Count
Source
423
1
                              auto creator_for_null_key = [&](auto& mapped) {
424
1
                                  mapped = _agg_arena.aligned_alloc(_total_agg_state_size,
425
1
                                                                    _agg_state_alignment);
426
1
                                  auto st = create_agg_state(mapped);
427
1
                                  if (!st) {
428
0
                                      throw Exception(st.code(), st.to_string());
429
0
                                  }
430
1
                                  refresh_top_limit(i, key_columns);
431
1
                              };
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashMapISM_S1_9HashCRC32ISM_EEEEEEEEEEbOT_ENKUlRSW_E_clIS1_EEDaSY_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashMapISM_S1_9HashCRC32ISM_EEEEEEEEEEbOT_ENKUlRSW_E_clIS1_EEDaSY_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEbOT_ENKUlRSU_E_clIS1_EEDaSW_
432
433
4
                              SCOPED_TIMER(_hash_table_emplace_timer);
434
4
                              lazy_emplace_batch(
435
4
                                      agg_method, state, num_rows, creator, creator_for_null_key,
436
8
                                      [&](uint32_t row) { i = row; },
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_16MethodSerializedI9PHHashMapINS_9StringRefES1_11DefaultHashISK_vEEEEEEbOT_ENKUljE_clEj
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIh9PHHashMapIhS1_9HashCRC32IhEEEEEEbOT_ENKUljE_clEj
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIt9PHHashMapItS1_9HashCRC32ItEEEEEEbOT_ENKUljE_clEj
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIj9PHHashMapIjS1_9HashCRC32IjEEEEEEbOT_ENKUljE_clEj
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIm9PHHashMapImS1_9HashCRC32ImEEEEEEbOT_ENKUljE_clEj
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_19MethodStringNoCacheINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEbOT_ENKUljE_clEj
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIN4wide7integerILm128EjEE9PHHashMapISL_S1_9HashCRC32ISL_EEEEEEbOT_ENKUljE_clEj
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIN4wide7integerILm256EjEE9PHHashMapISL_S1_9HashCRC32ISL_EEEEEEbOT_ENKUljE_clEj
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIj9PHHashMapIjS1_14HashMixWrapperIj9HashCRC32IjEEEEEEEbOT_ENKUljE_clEj
groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIm9PHHashMapImS1_14HashMixWrapperIm9HashCRC32ImEEEEEEEbOT_ENKUljE_clEj
Line
Count
Source
436
4
                                      [&](uint32_t row) { i = row; },
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI9PHHashMapIhS1_9HashCRC32IhEEEEEEEEEEbOT_ENKUljE_clEj
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashMapItS1_9HashCRC32ItEEEEEEEEEEbOT_ENKUljE_clEj
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjS1_9HashCRC32IjEEEEEEEEEEbOT_ENKUljE_clEj
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImS1_9HashCRC32ImEEEEEEEEEEbOT_ENKUljE_clEj
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjS1_14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEEbOT_ENKUljE_clEj
groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImS1_14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEEbOT_ENKUljE_clEj
Line
Count
Source
436
4
                                      [&](uint32_t row) { i = row; },
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashMapISM_S1_9HashCRC32ISM_EEEEEEEEEEbOT_ENKUljE_clEj
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashMapISM_S1_9HashCRC32ISM_EEEEEEEEEEbOT_ENKUljE_clEj
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEbOT_ENKUljE_clEj
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapImS1_9HashCRC32ImEEEEEEbOT_ENKUljE_clEj
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapINS_6UInt72ES1_9HashCRC32ISK_EEEEEEbOT_ENKUljE_clEj
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapINS_6UInt96ES1_9HashCRC32ISK_EEEEEEbOT_ENKUljE_clEj
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapINS_7UInt104ES1_9HashCRC32ISK_EEEEEEbOT_ENKUljE_clEj
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm128EjEES1_9HashCRC32ISM_EEEEEEbOT_ENKUljE_clEj
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapINS_7UInt136ES1_9HashCRC32ISK_EEEEEEbOT_ENKUljE_clEj
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm256EjEES1_9HashCRC32ISM_EEEEEEbOT_ENKUljE_clEj
437
8
                                      [&](uint32_t row, auto& mapped) { places[row] = mapped; });
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_16MethodSerializedI9PHHashMapINS_9StringRefES1_11DefaultHashISK_vEEEEEEbOT_ENKUljRSQ_E_clIS1_EEDajSS_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIh9PHHashMapIhS1_9HashCRC32IhEEEEEEbOT_ENKUljRSP_E_clIS1_EEDajSR_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIt9PHHashMapItS1_9HashCRC32ItEEEEEEbOT_ENKUljRSP_E_clIS1_EEDajSR_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIj9PHHashMapIjS1_9HashCRC32IjEEEEEEbOT_ENKUljRSP_E_clIS1_EEDajSR_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIm9PHHashMapImS1_9HashCRC32ImEEEEEEbOT_ENKUljRSP_E_clIS1_EEDajSR_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_19MethodStringNoCacheINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEbOT_ENKUljRSQ_E_clIS1_EEDajSS_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIN4wide7integerILm128EjEE9PHHashMapISL_S1_9HashCRC32ISL_EEEEEEbOT_ENKUljRSS_E_clIS1_EEDajSU_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIN4wide7integerILm256EjEE9PHHashMapISL_S1_9HashCRC32ISL_EEEEEEbOT_ENKUljRSS_E_clIS1_EEDajSU_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIj9PHHashMapIjS1_14HashMixWrapperIj9HashCRC32IjEEEEEEEbOT_ENKUljRSR_E_clIS1_EEDajST_
groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIm9PHHashMapImS1_14HashMixWrapperIm9HashCRC32ImEEEEEEEbOT_ENKUljRSR_E_clIS1_EEDajST_
Line
Count
Source
437
4
                                      [&](uint32_t row, auto& mapped) { places[row] = mapped; });
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI9PHHashMapIhS1_9HashCRC32IhEEEEEEEEEEbOT_ENKUljRST_E_clIS1_EEDajSV_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashMapItS1_9HashCRC32ItEEEEEEEEEEbOT_ENKUljRST_E_clIS1_EEDajSV_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjS1_9HashCRC32IjEEEEEEEEEEbOT_ENKUljRST_E_clIS1_EEDajSV_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImS1_9HashCRC32ImEEEEEEEEEEbOT_ENKUljRST_E_clIS1_EEDajSV_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjS1_14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEEbOT_ENKUljRSV_E_clIS1_EEDajSX_
groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImS1_14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEEbOT_ENKUljRSV_E_clIS1_EEDajSX_
Line
Count
Source
437
4
                                      [&](uint32_t row, auto& mapped) { places[row] = mapped; });
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashMapISM_S1_9HashCRC32ISM_EEEEEEEEEEbOT_ENKUljRSW_E_clIS1_EEDajSY_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashMapISM_S1_9HashCRC32ISM_EEEEEEEEEEbOT_ENKUljRSW_E_clIS1_EEDajSY_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEbOT_ENKUljRSU_E_clIS1_EEDajSW_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapImS1_9HashCRC32ImEEEEEEbOT_ENKUljRSP_E_clIS1_EEDajSR_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapINS_6UInt72ES1_9HashCRC32ISK_EEEEEEbOT_ENKUljRSQ_E_clIS1_EEDajSS_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapINS_6UInt96ES1_9HashCRC32ISK_EEEEEEbOT_ENKUljRSQ_E_clIS1_EEDajSS_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapINS_7UInt104ES1_9HashCRC32ISK_EEEEEEbOT_ENKUljRSQ_E_clIS1_EEDajSS_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm128EjEES1_9HashCRC32ISM_EEEEEEbOT_ENKUljRSS_E_clIS1_EEDajSU_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapINS_7UInt136ES1_9HashCRC32ISK_EEEEEEbOT_ENKUljRSQ_E_clIS1_EEDajSS_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm256EjEES1_9HashCRC32ISM_EEEEEEbOT_ENKUljRSS_E_clIS1_EEDajSU_
438
4
                              COUNTER_UPDATE(_hash_table_input_counter, num_rows);
439
4
                              return true;
440
4
                          }
441
0
                          return false;
442
4
                      }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_16MethodSerializedI9PHHashMapINS_9StringRefES1_11DefaultHashISK_vEEEEEEbOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIh9PHHashMapIhS1_9HashCRC32IhEEEEEEbOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIt9PHHashMapItS1_9HashCRC32ItEEEEEEbOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIj9PHHashMapIjS1_9HashCRC32IjEEEEEEbOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIm9PHHashMapImS1_9HashCRC32ImEEEEEEbOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_19MethodStringNoCacheINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEbOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIN4wide7integerILm128EjEE9PHHashMapISL_S1_9HashCRC32ISL_EEEEEEbOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIN4wide7integerILm256EjEE9PHHashMapISL_S1_9HashCRC32ISL_EEEEEEbOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIj9PHHashMapIjS1_14HashMixWrapperIj9HashCRC32IjEEEEEEEbOT_
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodOneNumberIm9PHHashMapImS1_14HashMixWrapperIm9HashCRC32ImEEEEEEEbOT_
Line
Count
Source
375
2
                      [&](auto&& agg_method) -> bool {
376
2
                          SCOPED_TIMER(_hash_table_compute_timer);
377
2
                          using HashMethodType = std::decay_t<decltype(agg_method)>;
378
2
                          using AggState = typename HashMethodType::State;
379
380
2
                          bool need_filter = false;
381
2
                          {
382
2
                              SCOPED_TIMER(_hash_table_limit_compute_timer);
383
2
                              need_filter = do_limit_filter(num_rows, key_columns);
384
2
                          }
385
386
2
                          auto& need_computes = _need_computes;
387
2
                          if (auto need_agg =
388
2
                                      std::find(need_computes.begin(), need_computes.end(), 1);
389
2
                              need_agg != need_computes.end()) {
390
2
                              if (need_filter) {
391
2
                                  Block::filter_block_internal(block, need_computes);
392
2
                                  if (key_locs) {
393
4
                                      for (int i = 0; i < key_locs->size(); ++i) {
394
2
                                          key_columns[i] =
395
2
                                                  block->get_by_position((*key_locs)[i])
396
2
                                                          .column.get();
397
2
                                      }
398
2
                                  }
399
2
                                  num_rows = (uint32_t)block->rows();
400
2
                              }
401
402
2
                              AggState state(key_columns);
403
2
                              agg_method.init_serialized_keys(key_columns, num_rows);
404
2
                              size_t i = 0;
405
406
2
                              auto creator = [&](const auto& ctor, auto& key, auto& origin) {
407
2
                                  try {
408
2
                                      HashMethodType::try_presis_key_and_origin(key, origin,
409
2
                                                                                _agg_arena);
410
2
                                      auto mapped = _agg_data_container->append_data(origin);
411
2
                                      auto st = create_agg_state(mapped);
412
2
                                      if (!st) {
413
2
                                          throw Exception(st.code(), st.to_string());
414
2
                                      }
415
2
                                      ctor(key, mapped);
416
2
                                      refresh_top_limit(i, key_columns);
417
2
                                  } catch (...) {
418
2
                                      ctor(key, nullptr);
419
2
                                      throw;
420
2
                                  }
421
2
                              };
422
423
2
                              auto creator_for_null_key = [&](auto& mapped) {
424
2
                                  mapped = _agg_arena.aligned_alloc(_total_agg_state_size,
425
2
                                                                    _agg_state_alignment);
426
2
                                  auto st = create_agg_state(mapped);
427
2
                                  if (!st) {
428
2
                                      throw Exception(st.code(), st.to_string());
429
2
                                  }
430
2
                                  refresh_top_limit(i, key_columns);
431
2
                              };
432
433
2
                              SCOPED_TIMER(_hash_table_emplace_timer);
434
2
                              lazy_emplace_batch(
435
2
                                      agg_method, state, num_rows, creator, creator_for_null_key,
436
2
                                      [&](uint32_t row) { i = row; },
437
2
                                      [&](uint32_t row, auto& mapped) { places[row] = mapped; });
438
2
                              COUNTER_UPDATE(_hash_table_input_counter, num_rows);
439
2
                              return true;
440
2
                          }
441
0
                          return false;
442
2
                      }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI9PHHashMapIhS1_9HashCRC32IhEEEEEEEEEEbOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashMapItS1_9HashCRC32ItEEEEEEEEEEbOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjS1_9HashCRC32IjEEEEEEEEEEbOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImS1_9HashCRC32ImEEEEEEEEEEbOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjS1_14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEEbOT_
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImS1_14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEEbOT_
Line
Count
Source
375
2
                      [&](auto&& agg_method) -> bool {
376
2
                          SCOPED_TIMER(_hash_table_compute_timer);
377
2
                          using HashMethodType = std::decay_t<decltype(agg_method)>;
378
2
                          using AggState = typename HashMethodType::State;
379
380
2
                          bool need_filter = false;
381
2
                          {
382
2
                              SCOPED_TIMER(_hash_table_limit_compute_timer);
383
2
                              need_filter = do_limit_filter(num_rows, key_columns);
384
2
                          }
385
386
2
                          auto& need_computes = _need_computes;
387
2
                          if (auto need_agg =
388
2
                                      std::find(need_computes.begin(), need_computes.end(), 1);
389
2
                              need_agg != need_computes.end()) {
390
2
                              if (need_filter) {
391
2
                                  Block::filter_block_internal(block, need_computes);
392
2
                                  if (key_locs) {
393
4
                                      for (int i = 0; i < key_locs->size(); ++i) {
394
2
                                          key_columns[i] =
395
2
                                                  block->get_by_position((*key_locs)[i])
396
2
                                                          .column.get();
397
2
                                      }
398
2
                                  }
399
2
                                  num_rows = (uint32_t)block->rows();
400
2
                              }
401
402
2
                              AggState state(key_columns);
403
2
                              agg_method.init_serialized_keys(key_columns, num_rows);
404
2
                              size_t i = 0;
405
406
2
                              auto creator = [&](const auto& ctor, auto& key, auto& origin) {
407
2
                                  try {
408
2
                                      HashMethodType::try_presis_key_and_origin(key, origin,
409
2
                                                                                _agg_arena);
410
2
                                      auto mapped = _agg_data_container->append_data(origin);
411
2
                                      auto st = create_agg_state(mapped);
412
2
                                      if (!st) {
413
2
                                          throw Exception(st.code(), st.to_string());
414
2
                                      }
415
2
                                      ctor(key, mapped);
416
2
                                      refresh_top_limit(i, key_columns);
417
2
                                  } catch (...) {
418
2
                                      ctor(key, nullptr);
419
2
                                      throw;
420
2
                                  }
421
2
                              };
422
423
2
                              auto creator_for_null_key = [&](auto& mapped) {
424
2
                                  mapped = _agg_arena.aligned_alloc(_total_agg_state_size,
425
2
                                                                    _agg_state_alignment);
426
2
                                  auto st = create_agg_state(mapped);
427
2
                                  if (!st) {
428
2
                                      throw Exception(st.code(), st.to_string());
429
2
                                  }
430
2
                                  refresh_top_limit(i, key_columns);
431
2
                              };
432
433
2
                              SCOPED_TIMER(_hash_table_emplace_timer);
434
2
                              lazy_emplace_batch(
435
2
                                      agg_method, state, num_rows, creator, creator_for_null_key,
436
2
                                      [&](uint32_t row) { i = row; },
437
2
                                      [&](uint32_t row, auto& mapped) { places[row] = mapped; });
438
2
                              COUNTER_UPDATE(_hash_table_input_counter, num_rows);
439
2
                              return true;
440
2
                          }
441
0
                          return false;
442
2
                      }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashMapISM_S1_9HashCRC32ISM_EEEEEEEEEEbOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashMapISM_S1_9HashCRC32ISM_EEEEEEEEEEbOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIS1_NS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEbOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapImS1_9HashCRC32ImEEEEEEbOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapINS_6UInt72ES1_9HashCRC32ISK_EEEEEEbOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapINS_6UInt96ES1_9HashCRC32ISK_EEEEEEbOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapINS_7UInt104ES1_9HashCRC32ISK_EEEEEEbOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm128EjEES1_9HashCRC32ISM_EEEEEEbOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapINS_7UInt136ES1_9HashCRC32ISK_EEEEEEbOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext29emplace_into_hash_table_limitEPPcPNS_5BlockEPKSt6vectorIiSaIiEERS5_IPKNS_7IColumnESaISC_EEjENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm256EjEES1_9HashCRC32ISM_EEEEEEbOT_
443
4
            _hash_table_data->method_variant);
444
4
}
445
446
// ==================== Aggregation execution ====================
447
448
Status GroupByAggContext::evaluate_groupby_keys(Block* block, ColumnRawPtrs& key_columns,
449
60
                                                std::vector<int>* key_locs) {
450
60
    SCOPED_TIMER(_expr_timer);
451
60
    const size_t key_size = _groupby_expr_ctxs.size();
452
120
    for (size_t i = 0; i < key_size; ++i) {
453
60
        int result_column_id = -1;
454
60
        RETURN_IF_ERROR(_groupby_expr_ctxs[i]->execute(block, &result_column_id));
455
60
        block->get_by_position(result_column_id).column =
456
60
                block->get_by_position(result_column_id)
457
60
                        .column->convert_to_full_column_if_const();
458
60
        key_columns[i] = block->get_by_position(result_column_id).column.get();
459
60
        key_columns[i]->assume_mutable()->replace_float_special_values();
460
60
        if (key_locs) {
461
52
            (*key_locs)[i] = result_column_id;
462
52
        }
463
60
    }
464
60
    return Status::OK();
465
60
}
466
467
43
Status GroupByAggContext::execute_with_serialized_key(Block* block) {
468
43
    memory_usage_last_executing = 0;
469
43
    SCOPED_PEAK_MEM(&memory_usage_last_executing);
470
471
43
    SCOPED_TIMER(_build_timer);
472
43
    DCHECK(!_groupby_expr_ctxs.empty());
473
474
43
    size_t key_size = _groupby_expr_ctxs.size();
475
43
    ColumnRawPtrs key_columns(key_size);
476
43
    std::vector<int> key_locs(key_size);
477
43
    RETURN_IF_ERROR(evaluate_groupby_keys(block, key_columns, &key_locs));
478
479
43
    auto rows = (uint32_t)block->rows();
480
43
    if (_places.size() < rows) {
481
30
        _places.resize(rows);
482
30
    }
483
484
43
    if (reach_limit && !do_sort_limit) {
485
1
        find_in_hash_table(_places.data(), key_columns, rows);
486
487
2
        for (int i = 0; i < _agg_evaluators.size(); ++i) {
488
1
            RETURN_IF_ERROR(_agg_evaluators[i]->execute_batch_add_selected(
489
1
                    block, _agg_state_offsets[i], _places.data(), _agg_arena));
490
1
        }
491
42
    } else {
492
42
        auto do_aggregate_evaluators = [&] {
493
84
            for (int i = 0; i < _agg_evaluators.size(); ++i) {
494
42
                RETURN_IF_ERROR(_agg_evaluators[i]->execute_batch_add(
495
42
                        block, _agg_state_offsets[i], _places.data(), _agg_arena));
496
42
            }
497
42
            return Status::OK();
498
42
        };
499
500
42
        if (reach_limit) {
501
            // do_sort_limit == true here
502
3
            if (emplace_into_hash_table_limit(_places.data(), block, &key_locs, key_columns,
503
3
                                              rows)) {
504
3
                RETURN_IF_ERROR(do_aggregate_evaluators());
505
3
            }
506
39
        } else {
507
39
            emplace_into_hash_table(_places.data(), key_columns, rows,
508
39
                                    _hash_table_compute_timer, _hash_table_emplace_timer,
509
39
                                    _hash_table_input_counter);
510
39
            RETURN_IF_ERROR(do_aggregate_evaluators());
511
512
39
            _check_limit_after_emplace();
513
39
        }
514
42
    }
515
43
    return Status::OK();
516
43
}
517
518
Status GroupByAggContext::emplace_and_forward(AggregateDataPtr* places, ColumnRawPtrs& key_columns,
519
                                              uint32_t num_rows, Block* block,
520
6
                                              bool expand_hash_table) {
521
6
    emplace_into_hash_table(places, key_columns, num_rows, _hash_table_compute_timer,
522
6
                            _hash_table_emplace_timer, _hash_table_input_counter);
523
524
12
    for (int i = 0; i < _agg_evaluators.size(); ++i) {
525
6
        RETURN_IF_ERROR(_agg_evaluators[i]->execute_batch_add(
526
6
                block, _agg_state_offsets[i], places, _agg_arena, expand_hash_table));
527
6
    }
528
6
    return Status::OK();
529
6
}
530
531
9
Status GroupByAggContext::merge_with_serialized_key(Block* block) {
532
9
    memory_usage_last_executing = 0;
533
9
    SCOPED_PEAK_MEM(&memory_usage_last_executing);
534
535
9
    if (reach_limit) {
536
3
        return _merge_with_serialized_key_helper<true, false>(block);
537
6
    } else {
538
6
        return _merge_with_serialized_key_helper<false, false>(block);
539
6
    }
540
9
}
541
542
24
Status GroupByAggContext::merge_with_serialized_key_for_spill(Block* block) {
543
24
    return _merge_with_serialized_key_helper<false, true>(block);
544
24
}
545
546
39
void GroupByAggContext::_check_limit_after_emplace() {
547
39
    if (should_limit_output && !enable_spill) {
548
12
        const size_t ht_size = hash_table_size();
549
12
        reach_limit = ht_size >= (do_sort_limit ? limit * config::topn_agg_limit_multiplier
550
12
                                                : limit);
551
12
        if (reach_limit && do_sort_limit) {
552
3
            build_limit_heap(ht_size);
553
3
        }
554
12
    }
555
39
}
556
557
6
void GroupByAggContext::_check_limit_after_emplace_for_merge() {
558
6
    if (should_limit_output) {
559
6
        const size_t ht_size = hash_table_size();
560
6
        reach_limit = ht_size >= limit;
561
6
        if (do_sort_limit && reach_limit) {
562
1
            build_limit_heap(ht_size);
563
1
        }
564
6
    }
565
6
}
566
567
template <bool limit, bool for_spill>
568
33
Status GroupByAggContext::_merge_with_serialized_key_helper(Block* block) {
569
33
    auto* merge_timer = for_spill ? _source_merge_timer : _merge_timer;
570
33
    auto* deser_timer = for_spill ? _source_deserialize_data_timer : _deserialize_data_timer;
571
33
    SCOPED_TIMER(merge_timer);
572
573
33
    size_t key_size = _groupby_expr_ctxs.size();
574
33
    ColumnRawPtrs key_columns(key_size);
575
33
    std::vector<int> key_locs(key_size);
576
577
33
    if constexpr (for_spill) {
578
48
        for (int i = 0; i < key_size; ++i) {
579
24
            key_columns[i] = block->get_by_position(i).column.get();
580
24
            key_columns[i]->assume_mutable()->replace_float_special_values();
581
24
            key_locs[i] = i;
582
24
        }
583
24
    } else {
584
9
        RETURN_IF_ERROR(evaluate_groupby_keys(block, key_columns, &key_locs));
585
9
    }
586
587
9
    size_t rows = block->rows();
588
33
    if (_places.size() < rows) {
589
6
        _places.resize(rows);
590
6
    }
591
592
33
    if (limit && !do_sort_limit) {
593
2
        find_in_hash_table(_places.data(), key_columns, (uint32_t)rows);
594
595
4
        for (int i = 0; i < _agg_evaluators.size(); ++i) {
596
2
            if (_agg_evaluators[i]->is_merge()) {
597
1
                int col_id = get_slot_column_id(_agg_evaluators[i]);
598
1
                auto column = block->get_by_position(col_id).column;
599
600
1
                size_t buffer_size = _agg_evaluators[i]->function()->size_of_data() * rows;
601
1
                if (_deserialize_buffer.size() < buffer_size) {
602
0
                    _deserialize_buffer.resize(buffer_size);
603
0
                }
604
605
1
                {
606
1
                    SCOPED_TIMER(deser_timer);
607
1
                    _agg_evaluators[i]->function()->deserialize_and_merge_vec_selected(
608
1
                            _places.data(), _agg_state_offsets[i], _deserialize_buffer.data(),
609
1
                            column.get(), _agg_arena, rows);
610
1
                }
611
1
            } else {
612
1
                RETURN_IF_ERROR(_agg_evaluators[i]->execute_batch_add_selected(
613
1
                        block, _agg_state_offsets[i], _places.data(), _agg_arena));
614
1
            }
615
2
        }
616
31
    } else {
617
31
        bool need_do_agg = true;
618
31
        if (limit) {
619
1
            need_do_agg = emplace_into_hash_table_limit(_places.data(), block, &key_locs,
620
1
                                                        key_columns, (uint32_t)rows);
621
1
            rows = block->rows();
622
30
        } else {
623
30
            if constexpr (for_spill) {
624
24
                emplace_into_hash_table(_places.data(), key_columns, (uint32_t)rows,
625
24
                                        _source_hash_table_compute_timer,
626
24
                                        _source_hash_table_emplace_timer,
627
24
                                        _source_hash_table_input_counter);
628
24
            } else {
629
6
                emplace_into_hash_table(_places.data(), key_columns, (uint32_t)rows,
630
6
                                        _hash_table_compute_timer, _hash_table_emplace_timer,
631
6
                                        _hash_table_input_counter);
632
6
            }
633
30
        }
634
635
31
        if (need_do_agg) {
636
62
            for (int i = 0; i < _agg_evaluators.size(); ++i) {
637
31
                if (_agg_evaluators[i]->is_merge() || for_spill) {
638
29
                    size_t col_id = 0;
639
29
                    if constexpr (for_spill) {
640
24
                        col_id = _groupby_expr_ctxs.size() + i;
641
24
                    } else {
642
5
                        col_id = get_slot_column_id(_agg_evaluators[i]);
643
5
                    }
644
29
                    auto column = block->get_by_position(col_id).column;
645
646
29
                    size_t buffer_size = _agg_evaluators[i]->function()->size_of_data() * rows;
647
29
                    if (_deserialize_buffer.size() < buffer_size) {
648
8
                        _deserialize_buffer.resize(buffer_size);
649
8
                    }
650
651
29
                    {
652
29
                        SCOPED_TIMER(deser_timer);
653
29
                        _agg_evaluators[i]->function()->deserialize_and_merge_vec(
654
29
                                _places.data(), _agg_state_offsets[i], _deserialize_buffer.data(),
655
29
                                column.get(), _agg_arena, rows);
656
29
                    }
657
29
                } else {
658
2
                    RETURN_IF_ERROR(_agg_evaluators[i]->execute_batch_add(
659
2
                            block, _agg_state_offsets[i], _places.data(), _agg_arena));
660
2
                }
661
31
            }
662
31
        }
663
664
31
        if (!limit && should_limit_output) {
665
6
            _check_limit_after_emplace_for_merge();
666
6
        }
667
31
    }
668
669
33
    return Status::OK();
670
33
}
_ZN5doris17GroupByAggContext33_merge_with_serialized_key_helperILb1ELb0EEENS_6StatusEPNS_5BlockE
Line
Count
Source
568
3
Status GroupByAggContext::_merge_with_serialized_key_helper(Block* block) {
569
3
    auto* merge_timer = for_spill ? _source_merge_timer : _merge_timer;
570
3
    auto* deser_timer = for_spill ? _source_deserialize_data_timer : _deserialize_data_timer;
571
3
    SCOPED_TIMER(merge_timer);
572
573
3
    size_t key_size = _groupby_expr_ctxs.size();
574
3
    ColumnRawPtrs key_columns(key_size);
575
3
    std::vector<int> key_locs(key_size);
576
577
    if constexpr (for_spill) {
578
        for (int i = 0; i < key_size; ++i) {
579
            key_columns[i] = block->get_by_position(i).column.get();
580
            key_columns[i]->assume_mutable()->replace_float_special_values();
581
            key_locs[i] = i;
582
        }
583
3
    } else {
584
3
        RETURN_IF_ERROR(evaluate_groupby_keys(block, key_columns, &key_locs));
585
3
    }
586
587
3
    size_t rows = block->rows();
588
3
    if (_places.size() < rows) {
589
0
        _places.resize(rows);
590
0
    }
591
592
3
    if (limit && !do_sort_limit) {
593
2
        find_in_hash_table(_places.data(), key_columns, (uint32_t)rows);
594
595
4
        for (int i = 0; i < _agg_evaluators.size(); ++i) {
596
2
            if (_agg_evaluators[i]->is_merge()) {
597
1
                int col_id = get_slot_column_id(_agg_evaluators[i]);
598
1
                auto column = block->get_by_position(col_id).column;
599
600
1
                size_t buffer_size = _agg_evaluators[i]->function()->size_of_data() * rows;
601
1
                if (_deserialize_buffer.size() < buffer_size) {
602
0
                    _deserialize_buffer.resize(buffer_size);
603
0
                }
604
605
1
                {
606
1
                    SCOPED_TIMER(deser_timer);
607
1
                    _agg_evaluators[i]->function()->deserialize_and_merge_vec_selected(
608
1
                            _places.data(), _agg_state_offsets[i], _deserialize_buffer.data(),
609
1
                            column.get(), _agg_arena, rows);
610
1
                }
611
1
            } else {
612
1
                RETURN_IF_ERROR(_agg_evaluators[i]->execute_batch_add_selected(
613
1
                        block, _agg_state_offsets[i], _places.data(), _agg_arena));
614
1
            }
615
2
        }
616
2
    } else {
617
1
        bool need_do_agg = true;
618
1
        if (limit) {
619
1
            need_do_agg = emplace_into_hash_table_limit(_places.data(), block, &key_locs,
620
1
                                                        key_columns, (uint32_t)rows);
621
1
            rows = block->rows();
622
1
        } else {
623
            if constexpr (for_spill) {
624
                emplace_into_hash_table(_places.data(), key_columns, (uint32_t)rows,
625
                                        _source_hash_table_compute_timer,
626
                                        _source_hash_table_emplace_timer,
627
                                        _source_hash_table_input_counter);
628
0
            } else {
629
0
                emplace_into_hash_table(_places.data(), key_columns, (uint32_t)rows,
630
0
                                        _hash_table_compute_timer, _hash_table_emplace_timer,
631
0
                                        _hash_table_input_counter);
632
0
            }
633
0
        }
634
635
1
        if (need_do_agg) {
636
2
            for (int i = 0; i < _agg_evaluators.size(); ++i) {
637
1
                if (_agg_evaluators[i]->is_merge() || for_spill) {
638
1
                    size_t col_id = 0;
639
                    if constexpr (for_spill) {
640
                        col_id = _groupby_expr_ctxs.size() + i;
641
1
                    } else {
642
1
                        col_id = get_slot_column_id(_agg_evaluators[i]);
643
1
                    }
644
1
                    auto column = block->get_by_position(col_id).column;
645
646
1
                    size_t buffer_size = _agg_evaluators[i]->function()->size_of_data() * rows;
647
1
                    if (_deserialize_buffer.size() < buffer_size) {
648
0
                        _deserialize_buffer.resize(buffer_size);
649
0
                    }
650
651
1
                    {
652
1
                        SCOPED_TIMER(deser_timer);
653
1
                        _agg_evaluators[i]->function()->deserialize_and_merge_vec(
654
1
                                _places.data(), _agg_state_offsets[i], _deserialize_buffer.data(),
655
1
                                column.get(), _agg_arena, rows);
656
1
                    }
657
1
                } else {
658
0
                    RETURN_IF_ERROR(_agg_evaluators[i]->execute_batch_add(
659
0
                            block, _agg_state_offsets[i], _places.data(), _agg_arena));
660
0
                }
661
1
            }
662
1
        }
663
664
1
        if (!limit && should_limit_output) {
665
0
            _check_limit_after_emplace_for_merge();
666
0
        }
667
1
    }
668
669
3
    return Status::OK();
670
3
}
_ZN5doris17GroupByAggContext33_merge_with_serialized_key_helperILb0ELb0EEENS_6StatusEPNS_5BlockE
Line
Count
Source
568
6
Status GroupByAggContext::_merge_with_serialized_key_helper(Block* block) {
569
6
    auto* merge_timer = for_spill ? _source_merge_timer : _merge_timer;
570
6
    auto* deser_timer = for_spill ? _source_deserialize_data_timer : _deserialize_data_timer;
571
6
    SCOPED_TIMER(merge_timer);
572
573
6
    size_t key_size = _groupby_expr_ctxs.size();
574
6
    ColumnRawPtrs key_columns(key_size);
575
6
    std::vector<int> key_locs(key_size);
576
577
    if constexpr (for_spill) {
578
        for (int i = 0; i < key_size; ++i) {
579
            key_columns[i] = block->get_by_position(i).column.get();
580
            key_columns[i]->assume_mutable()->replace_float_special_values();
581
            key_locs[i] = i;
582
        }
583
6
    } else {
584
6
        RETURN_IF_ERROR(evaluate_groupby_keys(block, key_columns, &key_locs));
585
6
    }
586
587
6
    size_t rows = block->rows();
588
6
    if (_places.size() < rows) {
589
6
        _places.resize(rows);
590
6
    }
591
592
6
    if (limit && !do_sort_limit) {
593
0
        find_in_hash_table(_places.data(), key_columns, (uint32_t)rows);
594
595
0
        for (int i = 0; i < _agg_evaluators.size(); ++i) {
596
0
            if (_agg_evaluators[i]->is_merge()) {
597
0
                int col_id = get_slot_column_id(_agg_evaluators[i]);
598
0
                auto column = block->get_by_position(col_id).column;
599
600
0
                size_t buffer_size = _agg_evaluators[i]->function()->size_of_data() * rows;
601
0
                if (_deserialize_buffer.size() < buffer_size) {
602
0
                    _deserialize_buffer.resize(buffer_size);
603
0
                }
604
605
0
                {
606
0
                    SCOPED_TIMER(deser_timer);
607
0
                    _agg_evaluators[i]->function()->deserialize_and_merge_vec_selected(
608
0
                            _places.data(), _agg_state_offsets[i], _deserialize_buffer.data(),
609
0
                            column.get(), _agg_arena, rows);
610
0
                }
611
0
            } else {
612
0
                RETURN_IF_ERROR(_agg_evaluators[i]->execute_batch_add_selected(
613
0
                        block, _agg_state_offsets[i], _places.data(), _agg_arena));
614
0
            }
615
0
        }
616
6
    } else {
617
6
        bool need_do_agg = true;
618
6
        if (limit) {
619
0
            need_do_agg = emplace_into_hash_table_limit(_places.data(), block, &key_locs,
620
0
                                                        key_columns, (uint32_t)rows);
621
0
            rows = block->rows();
622
6
        } else {
623
            if constexpr (for_spill) {
624
                emplace_into_hash_table(_places.data(), key_columns, (uint32_t)rows,
625
                                        _source_hash_table_compute_timer,
626
                                        _source_hash_table_emplace_timer,
627
                                        _source_hash_table_input_counter);
628
6
            } else {
629
6
                emplace_into_hash_table(_places.data(), key_columns, (uint32_t)rows,
630
6
                                        _hash_table_compute_timer, _hash_table_emplace_timer,
631
6
                                        _hash_table_input_counter);
632
6
            }
633
6
        }
634
635
6
        if (need_do_agg) {
636
12
            for (int i = 0; i < _agg_evaluators.size(); ++i) {
637
6
                if (_agg_evaluators[i]->is_merge() || for_spill) {
638
4
                    size_t col_id = 0;
639
                    if constexpr (for_spill) {
640
                        col_id = _groupby_expr_ctxs.size() + i;
641
4
                    } else {
642
4
                        col_id = get_slot_column_id(_agg_evaluators[i]);
643
4
                    }
644
4
                    auto column = block->get_by_position(col_id).column;
645
646
4
                    size_t buffer_size = _agg_evaluators[i]->function()->size_of_data() * rows;
647
4
                    if (_deserialize_buffer.size() < buffer_size) {
648
4
                        _deserialize_buffer.resize(buffer_size);
649
4
                    }
650
651
4
                    {
652
4
                        SCOPED_TIMER(deser_timer);
653
4
                        _agg_evaluators[i]->function()->deserialize_and_merge_vec(
654
4
                                _places.data(), _agg_state_offsets[i], _deserialize_buffer.data(),
655
4
                                column.get(), _agg_arena, rows);
656
4
                    }
657
4
                } else {
658
2
                    RETURN_IF_ERROR(_agg_evaluators[i]->execute_batch_add(
659
2
                            block, _agg_state_offsets[i], _places.data(), _agg_arena));
660
2
                }
661
6
            }
662
6
        }
663
664
6
        if (!limit && should_limit_output) {
665
6
            _check_limit_after_emplace_for_merge();
666
6
        }
667
6
    }
668
669
6
    return Status::OK();
670
6
}
_ZN5doris17GroupByAggContext33_merge_with_serialized_key_helperILb0ELb1EEENS_6StatusEPNS_5BlockE
Line
Count
Source
568
24
Status GroupByAggContext::_merge_with_serialized_key_helper(Block* block) {
569
24
    auto* merge_timer = for_spill ? _source_merge_timer : _merge_timer;
570
24
    auto* deser_timer = for_spill ? _source_deserialize_data_timer : _deserialize_data_timer;
571
24
    SCOPED_TIMER(merge_timer);
572
573
24
    size_t key_size = _groupby_expr_ctxs.size();
574
24
    ColumnRawPtrs key_columns(key_size);
575
24
    std::vector<int> key_locs(key_size);
576
577
24
    if constexpr (for_spill) {
578
48
        for (int i = 0; i < key_size; ++i) {
579
24
            key_columns[i] = block->get_by_position(i).column.get();
580
24
            key_columns[i]->assume_mutable()->replace_float_special_values();
581
24
            key_locs[i] = i;
582
24
        }
583
    } else {
584
        RETURN_IF_ERROR(evaluate_groupby_keys(block, key_columns, &key_locs));
585
    }
586
587
24
    size_t rows = block->rows();
588
24
    if (_places.size() < rows) {
589
0
        _places.resize(rows);
590
0
    }
591
592
24
    if (limit && !do_sort_limit) {
593
0
        find_in_hash_table(_places.data(), key_columns, (uint32_t)rows);
594
595
0
        for (int i = 0; i < _agg_evaluators.size(); ++i) {
596
0
            if (_agg_evaluators[i]->is_merge()) {
597
0
                int col_id = get_slot_column_id(_agg_evaluators[i]);
598
0
                auto column = block->get_by_position(col_id).column;
599
600
0
                size_t buffer_size = _agg_evaluators[i]->function()->size_of_data() * rows;
601
0
                if (_deserialize_buffer.size() < buffer_size) {
602
0
                    _deserialize_buffer.resize(buffer_size);
603
0
                }
604
605
0
                {
606
0
                    SCOPED_TIMER(deser_timer);
607
0
                    _agg_evaluators[i]->function()->deserialize_and_merge_vec_selected(
608
0
                            _places.data(), _agg_state_offsets[i], _deserialize_buffer.data(),
609
0
                            column.get(), _agg_arena, rows);
610
0
                }
611
0
            } else {
612
0
                RETURN_IF_ERROR(_agg_evaluators[i]->execute_batch_add_selected(
613
0
                        block, _agg_state_offsets[i], _places.data(), _agg_arena));
614
0
            }
615
0
        }
616
24
    } else {
617
24
        bool need_do_agg = true;
618
24
        if (limit) {
619
0
            need_do_agg = emplace_into_hash_table_limit(_places.data(), block, &key_locs,
620
0
                                                        key_columns, (uint32_t)rows);
621
0
            rows = block->rows();
622
24
        } else {
623
24
            if constexpr (for_spill) {
624
24
                emplace_into_hash_table(_places.data(), key_columns, (uint32_t)rows,
625
24
                                        _source_hash_table_compute_timer,
626
24
                                        _source_hash_table_emplace_timer,
627
24
                                        _source_hash_table_input_counter);
628
            } else {
629
                emplace_into_hash_table(_places.data(), key_columns, (uint32_t)rows,
630
                                        _hash_table_compute_timer, _hash_table_emplace_timer,
631
                                        _hash_table_input_counter);
632
            }
633
24
        }
634
635
24
        if (need_do_agg) {
636
48
            for (int i = 0; i < _agg_evaluators.size(); ++i) {
637
24
                if (_agg_evaluators[i]->is_merge() || for_spill) {
638
24
                    size_t col_id = 0;
639
24
                    if constexpr (for_spill) {
640
24
                        col_id = _groupby_expr_ctxs.size() + i;
641
                    } else {
642
                        col_id = get_slot_column_id(_agg_evaluators[i]);
643
                    }
644
24
                    auto column = block->get_by_position(col_id).column;
645
646
24
                    size_t buffer_size = _agg_evaluators[i]->function()->size_of_data() * rows;
647
24
                    if (_deserialize_buffer.size() < buffer_size) {
648
4
                        _deserialize_buffer.resize(buffer_size);
649
4
                    }
650
651
24
                    {
652
24
                        SCOPED_TIMER(deser_timer);
653
24
                        _agg_evaluators[i]->function()->deserialize_and_merge_vec(
654
24
                                _places.data(), _agg_state_offsets[i], _deserialize_buffer.data(),
655
24
                                column.get(), _agg_arena, rows);
656
24
                    }
657
24
                } else {
658
0
                    RETURN_IF_ERROR(_agg_evaluators[i]->execute_batch_add(
659
0
                            block, _agg_state_offsets[i], _places.data(), _agg_arena));
660
0
                }
661
24
            }
662
24
        }
663
664
24
        if (!limit && should_limit_output) {
665
0
            _check_limit_after_emplace_for_merge();
666
0
        }
667
24
    }
668
669
24
    return Status::OK();
670
24
}
671
672
// Explicit template instantiation
673
template Status GroupByAggContext::_merge_with_serialized_key_helper<true, false>(Block* block);
674
template Status GroupByAggContext::_merge_with_serialized_key_helper<false, false>(Block* block);
675
template Status GroupByAggContext::_merge_with_serialized_key_helper<false, true>(Block* block);
676
677
// ==================== Result output ====================
678
679
43
Status GroupByAggContext::get_serialized_results(RuntimeState* state, Block* block, bool* eos) {
680
43
    SCOPED_TIMER(_get_results_timer);
681
43
    size_t key_size = _groupby_expr_ctxs.size();
682
43
    size_t agg_size = _agg_evaluators.size();
683
43
    MutableColumns value_columns(agg_size);
684
43
    DataTypes value_data_types(agg_size);
685
686
43
    bool mem_reuse = make_nullable_keys.empty() && block->mem_reuse();
687
688
43
    auto key_columns = agg_context_utils::take_or_create_columns(
689
43
            block, mem_reuse, 0, key_size,
690
43
            [&](size_t i) { return _groupby_expr_ctxs[i]->root()->data_type()->create_column(); });
691
692
43
    std::visit(
693
43
            Overload {
694
43
                    [&](std::monostate& arg) -> void {
695
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR, "uninited hash table");
696
0
                    },
697
43
                    [&](auto& agg_method) -> void {
698
43
                        agg_method.init_iterator();
699
43
                        auto& data = *agg_method.hash_table;
700
43
                        const auto size = std::min(data.size(), size_t(state->batch_size()));
701
43
                        using KeyType = std::decay_t<decltype(agg_method)>::Key;
702
43
                        std::vector<KeyType> keys(size);
703
704
43
                        if (_values.size() < size + 1) {
705
21
                            _values.resize(size + 1);
706
21
                        }
707
708
43
                        uint32_t num_rows = 0;
709
43
                        _agg_data_container->init_once();
710
43
                        auto& iter = _agg_data_container->iterator;
711
712
43
                        {
713
43
                            SCOPED_TIMER(_hash_table_iterate_timer);
714
10.0k
                            while (iter != _agg_data_container->end() &&
715
10.0k
                                   num_rows < state->batch_size()) {
716
10.0k
                                keys[num_rows] = iter.template get_key<KeyType>();
717
10.0k
                                _values[num_rows] = iter.get_aggregate_data();
718
10.0k
                                ++iter;
719
10.0k
                                ++num_rows;
720
10.0k
                            }
721
43
                        }
722
723
43
                        {
724
43
                            SCOPED_TIMER(_insert_keys_to_column_timer);
725
43
                            agg_method.insert_keys_into_columns(keys, key_columns, num_rows);
726
43
                        }
727
728
43
                        if (iter == _agg_data_container->end()) {
729
43
                            if (agg_method.hash_table->has_null_key_data()) {
730
3
                                DCHECK(key_columns.size() == 1);
731
3
                                DCHECK(key_columns[0]->is_nullable());
732
3
                                key_columns[0]->insert_data(nullptr, 0);
733
3
                                _values[num_rows] =
734
3
                                        agg_method.hash_table->template get_null_key_data<
735
3
                                                AggregateDataPtr>();
736
3
                                ++num_rows;
737
3
                                *eos = true;
738
40
                            } else {
739
40
                                *eos = true;
740
40
                            }
741
43
                        }
742
743
43
                        {
744
43
                            SCOPED_TIMER(_insert_values_to_column_timer);
745
86
                            for (size_t i = 0; i < _agg_evaluators.size(); ++i) {
746
43
                                value_data_types[i] =
747
43
                                        _agg_evaluators[i]->function()->get_serialized_type();
748
43
                                if (mem_reuse) {
749
22
                                    value_columns[i] =
750
22
                                            std::move(*block->get_by_position(i + key_size).column)
751
22
                                                    .mutate();
752
22
                                } else {
753
21
                                    value_columns[i] = _agg_evaluators[i]
754
21
                                                               ->function()
755
21
                                                               ->create_serialize_column();
756
21
                                }
757
43
                                _agg_evaluators[i]->function()->serialize_to_column(
758
43
                                        _values, _agg_state_offsets[i], value_columns[i],
759
43
                                        num_rows);
760
43
                            }
761
43
                        }
762
43
                    }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext22get_serialized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbENK3$_1clINS_16MethodSerializedI9PHHashMapINS_9StringRefEPc11DefaultHashISA_vEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext22get_serialized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbENK3$_1clINS_15MethodOneNumberIh9PHHashMapIhPc9HashCRC32IhEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext22get_serialized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbENK3$_1clINS_15MethodOneNumberIt9PHHashMapItPc9HashCRC32ItEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext22get_serialized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjPc9HashCRC32IjEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext22get_serialized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbENK3$_1clINS_15MethodOneNumberIm9PHHashMapImPc9HashCRC32ImEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext22get_serialized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbENK3$_1clINS_19MethodStringNoCacheINS_13StringHashMapIPcNS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext22get_serialized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbENK3$_1clINS_15MethodOneNumberIN4wide7integerILm128EjEE9PHHashMapISB_Pc9HashCRC32ISB_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext22get_serialized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbENK3$_1clINS_15MethodOneNumberIN4wide7integerILm256EjEE9PHHashMapISB_Pc9HashCRC32ISB_EEEEEEvRT_
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext22get_serialized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjPc14HashMixWrapperIj9HashCRC32IjEEEEEEEvRT_
Line
Count
Source
697
34
                    [&](auto& agg_method) -> void {
698
34
                        agg_method.init_iterator();
699
34
                        auto& data = *agg_method.hash_table;
700
34
                        const auto size = std::min(data.size(), size_t(state->batch_size()));
701
34
                        using KeyType = std::decay_t<decltype(agg_method)>::Key;
702
34
                        std::vector<KeyType> keys(size);
703
704
34
                        if (_values.size() < size + 1) {
705
12
                            _values.resize(size + 1);
706
12
                        }
707
708
34
                        uint32_t num_rows = 0;
709
34
                        _agg_data_container->init_once();
710
34
                        auto& iter = _agg_data_container->iterator;
711
712
34
                        {
713
34
                            SCOPED_TIMER(_hash_table_iterate_timer);
714
10.0k
                            while (iter != _agg_data_container->end() &&
715
10.0k
                                   num_rows < state->batch_size()) {
716
10.0k
                                keys[num_rows] = iter.template get_key<KeyType>();
717
10.0k
                                _values[num_rows] = iter.get_aggregate_data();
718
10.0k
                                ++iter;
719
10.0k
                                ++num_rows;
720
10.0k
                            }
721
34
                        }
722
723
34
                        {
724
34
                            SCOPED_TIMER(_insert_keys_to_column_timer);
725
34
                            agg_method.insert_keys_into_columns(keys, key_columns, num_rows);
726
34
                        }
727
728
34
                        if (iter == _agg_data_container->end()) {
729
34
                            if (agg_method.hash_table->has_null_key_data()) {
730
0
                                DCHECK(key_columns.size() == 1);
731
0
                                DCHECK(key_columns[0]->is_nullable());
732
0
                                key_columns[0]->insert_data(nullptr, 0);
733
0
                                _values[num_rows] =
734
0
                                        agg_method.hash_table->template get_null_key_data<
735
0
                                                AggregateDataPtr>();
736
0
                                ++num_rows;
737
0
                                *eos = true;
738
34
                            } else {
739
34
                                *eos = true;
740
34
                            }
741
34
                        }
742
743
34
                        {
744
34
                            SCOPED_TIMER(_insert_values_to_column_timer);
745
68
                            for (size_t i = 0; i < _agg_evaluators.size(); ++i) {
746
34
                                value_data_types[i] =
747
34
                                        _agg_evaluators[i]->function()->get_serialized_type();
748
34
                                if (mem_reuse) {
749
22
                                    value_columns[i] =
750
22
                                            std::move(*block->get_by_position(i + key_size).column)
751
22
                                                    .mutate();
752
22
                                } else {
753
12
                                    value_columns[i] = _agg_evaluators[i]
754
12
                                                               ->function()
755
12
                                                               ->create_serialize_column();
756
12
                                }
757
34
                                _agg_evaluators[i]->function()->serialize_to_column(
758
34
                                        _values, _agg_state_offsets[i], value_columns[i],
759
34
                                        num_rows);
760
34
                            }
761
34
                        }
762
34
                    }},
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext22get_serialized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbENK3$_1clINS_15MethodOneNumberIm9PHHashMapImPc14HashMixWrapperIm9HashCRC32ImEEEEEEEvRT_
Line
Count
Source
697
6
                    [&](auto& agg_method) -> void {
698
6
                        agg_method.init_iterator();
699
6
                        auto& data = *agg_method.hash_table;
700
6
                        const auto size = std::min(data.size(), size_t(state->batch_size()));
701
6
                        using KeyType = std::decay_t<decltype(agg_method)>::Key;
702
6
                        std::vector<KeyType> keys(size);
703
704
6
                        if (_values.size() < size + 1) {
705
6
                            _values.resize(size + 1);
706
6
                        }
707
708
6
                        uint32_t num_rows = 0;
709
6
                        _agg_data_container->init_once();
710
6
                        auto& iter = _agg_data_container->iterator;
711
712
6
                        {
713
6
                            SCOPED_TIMER(_hash_table_iterate_timer);
714
30
                            while (iter != _agg_data_container->end() &&
715
30
                                   num_rows < state->batch_size()) {
716
24
                                keys[num_rows] = iter.template get_key<KeyType>();
717
24
                                _values[num_rows] = iter.get_aggregate_data();
718
24
                                ++iter;
719
24
                                ++num_rows;
720
24
                            }
721
6
                        }
722
723
6
                        {
724
6
                            SCOPED_TIMER(_insert_keys_to_column_timer);
725
6
                            agg_method.insert_keys_into_columns(keys, key_columns, num_rows);
726
6
                        }
727
728
6
                        if (iter == _agg_data_container->end()) {
729
6
                            if (agg_method.hash_table->has_null_key_data()) {
730
0
                                DCHECK(key_columns.size() == 1);
731
0
                                DCHECK(key_columns[0]->is_nullable());
732
0
                                key_columns[0]->insert_data(nullptr, 0);
733
0
                                _values[num_rows] =
734
0
                                        agg_method.hash_table->template get_null_key_data<
735
0
                                                AggregateDataPtr>();
736
0
                                ++num_rows;
737
0
                                *eos = true;
738
6
                            } else {
739
6
                                *eos = true;
740
6
                            }
741
6
                        }
742
743
6
                        {
744
6
                            SCOPED_TIMER(_insert_values_to_column_timer);
745
12
                            for (size_t i = 0; i < _agg_evaluators.size(); ++i) {
746
6
                                value_data_types[i] =
747
6
                                        _agg_evaluators[i]->function()->get_serialized_type();
748
6
                                if (mem_reuse) {
749
0
                                    value_columns[i] =
750
0
                                            std::move(*block->get_by_position(i + key_size).column)
751
0
                                                    .mutate();
752
6
                                } else {
753
6
                                    value_columns[i] = _agg_evaluators[i]
754
6
                                                               ->function()
755
6
                                                               ->create_serialize_column();
756
6
                                }
757
6
                                _agg_evaluators[i]->function()->serialize_to_column(
758
6
                                        _values, _agg_state_offsets[i], value_columns[i],
759
6
                                        num_rows);
760
6
                            }
761
6
                        }
762
6
                    }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext22get_serialized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI9PHHashMapIhPc9HashCRC32IhEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext22get_serialized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashMapItPc9HashCRC32ItEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext22get_serialized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjPc9HashCRC32IjEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext22get_serialized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImPc9HashCRC32ImEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext22get_serialized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjPc14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEEvRT_
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext22get_serialized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImPc14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEEvRT_
Line
Count
Source
697
3
                    [&](auto& agg_method) -> void {
698
3
                        agg_method.init_iterator();
699
3
                        auto& data = *agg_method.hash_table;
700
3
                        const auto size = std::min(data.size(), size_t(state->batch_size()));
701
3
                        using KeyType = std::decay_t<decltype(agg_method)>::Key;
702
3
                        std::vector<KeyType> keys(size);
703
704
3
                        if (_values.size() < size + 1) {
705
3
                            _values.resize(size + 1);
706
3
                        }
707
708
3
                        uint32_t num_rows = 0;
709
3
                        _agg_data_container->init_once();
710
3
                        auto& iter = _agg_data_container->iterator;
711
712
3
                        {
713
3
                            SCOPED_TIMER(_hash_table_iterate_timer);
714
11
                            while (iter != _agg_data_container->end() &&
715
11
                                   num_rows < state->batch_size()) {
716
8
                                keys[num_rows] = iter.template get_key<KeyType>();
717
8
                                _values[num_rows] = iter.get_aggregate_data();
718
8
                                ++iter;
719
8
                                ++num_rows;
720
8
                            }
721
3
                        }
722
723
3
                        {
724
3
                            SCOPED_TIMER(_insert_keys_to_column_timer);
725
3
                            agg_method.insert_keys_into_columns(keys, key_columns, num_rows);
726
3
                        }
727
728
3
                        if (iter == _agg_data_container->end()) {
729
3
                            if (agg_method.hash_table->has_null_key_data()) {
730
3
                                DCHECK(key_columns.size() == 1);
731
3
                                DCHECK(key_columns[0]->is_nullable());
732
3
                                key_columns[0]->insert_data(nullptr, 0);
733
3
                                _values[num_rows] =
734
3
                                        agg_method.hash_table->template get_null_key_data<
735
3
                                                AggregateDataPtr>();
736
3
                                ++num_rows;
737
3
                                *eos = true;
738
3
                            } else {
739
0
                                *eos = true;
740
0
                            }
741
3
                        }
742
743
3
                        {
744
3
                            SCOPED_TIMER(_insert_values_to_column_timer);
745
6
                            for (size_t i = 0; i < _agg_evaluators.size(); ++i) {
746
3
                                value_data_types[i] =
747
3
                                        _agg_evaluators[i]->function()->get_serialized_type();
748
3
                                if (mem_reuse) {
749
0
                                    value_columns[i] =
750
0
                                            std::move(*block->get_by_position(i + key_size).column)
751
0
                                                    .mutate();
752
3
                                } else {
753
3
                                    value_columns[i] = _agg_evaluators[i]
754
3
                                                               ->function()
755
3
                                                               ->create_serialize_column();
756
3
                                }
757
3
                                _agg_evaluators[i]->function()->serialize_to_column(
758
3
                                        _values, _agg_state_offsets[i], value_columns[i],
759
3
                                        num_rows);
760
3
                            }
761
3
                        }
762
3
                    }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext22get_serialized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashMapISC_Pc9HashCRC32ISC_EEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext22get_serialized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashMapISC_Pc9HashCRC32ISC_EEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext22get_serialized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbENK3$_1clINS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIPcNS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext22get_serialized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbENK3$_1clINS_15MethodKeysFixedI9PHHashMapImPc9HashCRC32ImEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext22get_serialized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt72EPc9HashCRC32ISA_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext22get_serialized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt96EPc9HashCRC32ISA_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext22get_serialized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt104EPc9HashCRC32ISA_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext22get_serialized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm128EjEEPc9HashCRC32ISC_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext22get_serialized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt136EPc9HashCRC32ISA_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext22get_serialized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm256EjEEPc9HashCRC32ISC_EEEEEEvRT_
763
43
            _hash_table_data->method_variant);
764
765
43
    if (!mem_reuse) {
766
21
        agg_context_utils::build_serialized_output_block(block, key_columns, _groupby_expr_ctxs,
767
21
                                                        value_columns, value_data_types);
768
21
    }
769
770
43
    return Status::OK();
771
43
}
772
773
Status GroupByAggContext::get_finalized_results(RuntimeState* state, Block* block, bool* eos,
774
11
                                               const ColumnsWithTypeAndName& columns_with_schema) {
775
11
    bool mem_reuse = make_nullable_keys.empty() && block->mem_reuse();
776
777
11
    size_t key_size = _groupby_expr_ctxs.size();
778
779
11
    auto key_columns = agg_context_utils::take_or_create_columns(
780
11
            block, mem_reuse, 0, key_size,
781
11
            [&](size_t i) { return columns_with_schema[i].type->create_column(); });
782
11
    auto value_columns = agg_context_utils::take_or_create_columns(
783
11
            block, mem_reuse, key_size, columns_with_schema.size() - key_size,
784
11
            [&](size_t i) { return columns_with_schema[key_size + i].type->create_column(); });
785
786
11
    SCOPED_TIMER(_get_results_timer);
787
11
    std::visit(
788
11
            Overload {
789
11
                    [&](std::monostate& arg) -> void {
790
0
                        throw doris::Exception(ErrorCode::INTERNAL_ERROR, "uninited hash table");
791
0
                    },
792
11
                    [&](auto& agg_method) -> void {
793
11
                        auto& data = *agg_method.hash_table;
794
11
                        agg_method.init_iterator();
795
11
                        const auto size = std::min(data.size(), size_t(state->batch_size()));
796
11
                        using KeyType = std::decay_t<decltype(agg_method)>::Key;
797
11
                        std::vector<KeyType> keys(size);
798
799
11
                        if (_values.size() < size) {
800
11
                            _values.resize(size);
801
11
                        }
802
803
11
                        uint32_t num_rows = 0;
804
11
                        _agg_data_container->init_once();
805
11
                        auto& iter = _agg_data_container->iterator;
806
807
11
                        {
808
11
                            SCOPED_TIMER(_hash_table_iterate_timer);
809
56
                            while (iter != _agg_data_container->end() &&
810
56
                                   num_rows < state->batch_size()) {
811
45
                                keys[num_rows] = iter.template get_key<KeyType>();
812
45
                                _values[num_rows] = iter.get_aggregate_data();
813
45
                                ++iter;
814
45
                                ++num_rows;
815
45
                            }
816
11
                        }
817
818
11
                        {
819
11
                            SCOPED_TIMER(_insert_keys_to_column_timer);
820
11
                            agg_method.insert_keys_into_columns(keys, key_columns, num_rows);
821
11
                        }
822
823
22
                        for (size_t i = 0; i < _agg_evaluators.size(); ++i) {
824
11
                            _agg_evaluators[i]->insert_result_info_vec(
825
11
                                    _values, _agg_state_offsets[i], value_columns[i].get(),
826
11
                                    num_rows);
827
11
                        }
828
829
11
                        if (iter == _agg_data_container->end()) {
830
11
                            if (agg_method.hash_table->has_null_key_data()) {
831
3
                                DCHECK(key_columns.size() == 1);
832
3
                                DCHECK(key_columns[0]->is_nullable());
833
3
                                if (key_columns[0]->size() < state->batch_size()) {
834
3
                                    key_columns[0]->insert_data(nullptr, 0);
835
3
                                    auto mapped =
836
3
                                            agg_method.hash_table->template get_null_key_data<
837
3
                                                    AggregateDataPtr>();
838
6
                                    for (size_t i = 0; i < _agg_evaluators.size(); ++i) {
839
3
                                        _agg_evaluators[i]->insert_result_info(
840
3
                                                mapped + _agg_state_offsets[i],
841
3
                                                value_columns[i].get());
842
3
                                    }
843
3
                                    *eos = true;
844
3
                                }
845
8
                            } else {
846
8
                                *eos = true;
847
8
                            }
848
11
                        }
849
11
                    }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext21get_finalized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbRKSt6vectorINS_21ColumnWithTypeAndNameESaIS7_EEENK3$_1clINS_16MethodSerializedI9PHHashMapINS_9StringRefEPc11DefaultHashISG_vEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext21get_finalized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbRKSt6vectorINS_21ColumnWithTypeAndNameESaIS7_EEENK3$_1clINS_15MethodOneNumberIh9PHHashMapIhPc9HashCRC32IhEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext21get_finalized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbRKSt6vectorINS_21ColumnWithTypeAndNameESaIS7_EEENK3$_1clINS_15MethodOneNumberIt9PHHashMapItPc9HashCRC32ItEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext21get_finalized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbRKSt6vectorINS_21ColumnWithTypeAndNameESaIS7_EEENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjPc9HashCRC32IjEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext21get_finalized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbRKSt6vectorINS_21ColumnWithTypeAndNameESaIS7_EEENK3$_1clINS_15MethodOneNumberIm9PHHashMapImPc9HashCRC32ImEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext21get_finalized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbRKSt6vectorINS_21ColumnWithTypeAndNameESaIS7_EEENK3$_1clINS_19MethodStringNoCacheINS_13StringHashMapIPcNS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext21get_finalized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbRKSt6vectorINS_21ColumnWithTypeAndNameESaIS7_EEENK3$_1clINS_15MethodOneNumberIN4wide7integerILm128EjEE9PHHashMapISH_Pc9HashCRC32ISH_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext21get_finalized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbRKSt6vectorINS_21ColumnWithTypeAndNameESaIS7_EEENK3$_1clINS_15MethodOneNumberIN4wide7integerILm256EjEE9PHHashMapISH_Pc9HashCRC32ISH_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext21get_finalized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbRKSt6vectorINS_21ColumnWithTypeAndNameESaIS7_EEENK3$_1clINS_15MethodOneNumberIj9PHHashMapIjPc14HashMixWrapperIj9HashCRC32IjEEEEEEEvRT_
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext21get_finalized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbRKSt6vectorINS_21ColumnWithTypeAndNameESaIS7_EEENK3$_1clINS_15MethodOneNumberIm9PHHashMapImPc14HashMixWrapperIm9HashCRC32ImEEEEEEEvRT_
Line
Count
Source
792
8
                    [&](auto& agg_method) -> void {
793
8
                        auto& data = *agg_method.hash_table;
794
8
                        agg_method.init_iterator();
795
8
                        const auto size = std::min(data.size(), size_t(state->batch_size()));
796
8
                        using KeyType = std::decay_t<decltype(agg_method)>::Key;
797
8
                        std::vector<KeyType> keys(size);
798
799
8
                        if (_values.size() < size) {
800
8
                            _values.resize(size);
801
8
                        }
802
803
8
                        uint32_t num_rows = 0;
804
8
                        _agg_data_container->init_once();
805
8
                        auto& iter = _agg_data_container->iterator;
806
807
8
                        {
808
8
                            SCOPED_TIMER(_hash_table_iterate_timer);
809
39
                            while (iter != _agg_data_container->end() &&
810
39
                                   num_rows < state->batch_size()) {
811
31
                                keys[num_rows] = iter.template get_key<KeyType>();
812
31
                                _values[num_rows] = iter.get_aggregate_data();
813
31
                                ++iter;
814
31
                                ++num_rows;
815
31
                            }
816
8
                        }
817
818
8
                        {
819
8
                            SCOPED_TIMER(_insert_keys_to_column_timer);
820
8
                            agg_method.insert_keys_into_columns(keys, key_columns, num_rows);
821
8
                        }
822
823
16
                        for (size_t i = 0; i < _agg_evaluators.size(); ++i) {
824
8
                            _agg_evaluators[i]->insert_result_info_vec(
825
8
                                    _values, _agg_state_offsets[i], value_columns[i].get(),
826
8
                                    num_rows);
827
8
                        }
828
829
8
                        if (iter == _agg_data_container->end()) {
830
8
                            if (agg_method.hash_table->has_null_key_data()) {
831
0
                                DCHECK(key_columns.size() == 1);
832
0
                                DCHECK(key_columns[0]->is_nullable());
833
0
                                if (key_columns[0]->size() < state->batch_size()) {
834
0
                                    key_columns[0]->insert_data(nullptr, 0);
835
0
                                    auto mapped =
836
0
                                            agg_method.hash_table->template get_null_key_data<
837
0
                                                    AggregateDataPtr>();
838
0
                                    for (size_t i = 0; i < _agg_evaluators.size(); ++i) {
839
0
                                        _agg_evaluators[i]->insert_result_info(
840
0
                                                mapped + _agg_state_offsets[i],
841
0
                                                value_columns[i].get());
842
0
                                    }
843
0
                                    *eos = true;
844
0
                                }
845
8
                            } else {
846
8
                                *eos = true;
847
8
                            }
848
8
                        }
849
8
                    }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext21get_finalized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbRKSt6vectorINS_21ColumnWithTypeAndNameESaIS7_EEENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI9PHHashMapIhPc9HashCRC32IhEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext21get_finalized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbRKSt6vectorINS_21ColumnWithTypeAndNameESaIS7_EEENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashMapItPc9HashCRC32ItEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext21get_finalized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbRKSt6vectorINS_21ColumnWithTypeAndNameESaIS7_EEENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjPc9HashCRC32IjEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext21get_finalized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbRKSt6vectorINS_21ColumnWithTypeAndNameESaIS7_EEENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImPc9HashCRC32ImEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext21get_finalized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbRKSt6vectorINS_21ColumnWithTypeAndNameESaIS7_EEENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjPc14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEEvRT_
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext21get_finalized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbRKSt6vectorINS_21ColumnWithTypeAndNameESaIS7_EEENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImPc14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEEvRT_
Line
Count
Source
792
3
                    [&](auto& agg_method) -> void {
793
3
                        auto& data = *agg_method.hash_table;
794
3
                        agg_method.init_iterator();
795
3
                        const auto size = std::min(data.size(), size_t(state->batch_size()));
796
3
                        using KeyType = std::decay_t<decltype(agg_method)>::Key;
797
3
                        std::vector<KeyType> keys(size);
798
799
3
                        if (_values.size() < size) {
800
3
                            _values.resize(size);
801
3
                        }
802
803
3
                        uint32_t num_rows = 0;
804
3
                        _agg_data_container->init_once();
805
3
                        auto& iter = _agg_data_container->iterator;
806
807
3
                        {
808
3
                            SCOPED_TIMER(_hash_table_iterate_timer);
809
17
                            while (iter != _agg_data_container->end() &&
810
17
                                   num_rows < state->batch_size()) {
811
14
                                keys[num_rows] = iter.template get_key<KeyType>();
812
14
                                _values[num_rows] = iter.get_aggregate_data();
813
14
                                ++iter;
814
14
                                ++num_rows;
815
14
                            }
816
3
                        }
817
818
3
                        {
819
3
                            SCOPED_TIMER(_insert_keys_to_column_timer);
820
3
                            agg_method.insert_keys_into_columns(keys, key_columns, num_rows);
821
3
                        }
822
823
6
                        for (size_t i = 0; i < _agg_evaluators.size(); ++i) {
824
3
                            _agg_evaluators[i]->insert_result_info_vec(
825
3
                                    _values, _agg_state_offsets[i], value_columns[i].get(),
826
3
                                    num_rows);
827
3
                        }
828
829
3
                        if (iter == _agg_data_container->end()) {
830
3
                            if (agg_method.hash_table->has_null_key_data()) {
831
3
                                DCHECK(key_columns.size() == 1);
832
3
                                DCHECK(key_columns[0]->is_nullable());
833
3
                                if (key_columns[0]->size() < state->batch_size()) {
834
3
                                    key_columns[0]->insert_data(nullptr, 0);
835
3
                                    auto mapped =
836
3
                                            agg_method.hash_table->template get_null_key_data<
837
3
                                                    AggregateDataPtr>();
838
6
                                    for (size_t i = 0; i < _agg_evaluators.size(); ++i) {
839
3
                                        _agg_evaluators[i]->insert_result_info(
840
3
                                                mapped + _agg_state_offsets[i],
841
3
                                                value_columns[i].get());
842
3
                                    }
843
3
                                    *eos = true;
844
3
                                }
845
3
                            } else {
846
0
                                *eos = true;
847
0
                            }
848
3
                        }
849
3
                    }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext21get_finalized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbRKSt6vectorINS_21ColumnWithTypeAndNameESaIS7_EEENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashMapISI_Pc9HashCRC32ISI_EEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext21get_finalized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbRKSt6vectorINS_21ColumnWithTypeAndNameESaIS7_EEENK3$_1clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashMapISI_Pc9HashCRC32ISI_EEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext21get_finalized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbRKSt6vectorINS_21ColumnWithTypeAndNameESaIS7_EEENK3$_1clINS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIPcNS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext21get_finalized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbRKSt6vectorINS_21ColumnWithTypeAndNameESaIS7_EEENK3$_1clINS_15MethodKeysFixedI9PHHashMapImPc9HashCRC32ImEEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext21get_finalized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbRKSt6vectorINS_21ColumnWithTypeAndNameESaIS7_EEENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt72EPc9HashCRC32ISG_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext21get_finalized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbRKSt6vectorINS_21ColumnWithTypeAndNameESaIS7_EEENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_6UInt96EPc9HashCRC32ISG_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext21get_finalized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbRKSt6vectorINS_21ColumnWithTypeAndNameESaIS7_EEENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt104EPc9HashCRC32ISG_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext21get_finalized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbRKSt6vectorINS_21ColumnWithTypeAndNameESaIS7_EEENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm128EjEEPc9HashCRC32ISI_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext21get_finalized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbRKSt6vectorINS_21ColumnWithTypeAndNameESaIS7_EEENK3$_1clINS_15MethodKeysFixedI9PHHashMapINS_7UInt136EPc9HashCRC32ISG_EEEEEEvRT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext21get_finalized_resultsEPNS_12RuntimeStateEPNS_5BlockEPbRKSt6vectorINS_21ColumnWithTypeAndNameESaIS7_EEENK3$_1clINS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm256EjEEPc9HashCRC32ISI_EEEEEEvRT_
850
11
            _hash_table_data->method_variant);
851
852
11
    if (!mem_reuse) {
853
11
        agg_context_utils::assemble_finalized_output(block, columns_with_schema, key_columns,
854
11
                                                    value_columns, key_size);
855
11
    }
856
857
11
    return Status::OK();
858
11
}
859
860
// ==================== Sort limit ====================
861
862
4
MutableColumns GroupByAggContext::_get_keys_hash_table() {
863
4
    return std::visit(
864
4
            Overload {[&](std::monostate& arg) {
865
0
                          throw doris::Exception(ErrorCode::INTERNAL_ERROR, "uninited hash table");
866
0
                          return MutableColumns();
867
0
                      },
868
4
                      [&](auto&& agg_method) -> MutableColumns {
869
4
                          MutableColumns key_columns;
870
8
                          for (int i = 0; i < _groupby_expr_ctxs.size(); ++i) {
871
4
                              key_columns.emplace_back(
872
4
                                      _groupby_expr_ctxs[i]->root()->data_type()->create_column());
873
4
                          }
874
4
                          auto& data = *agg_method.hash_table;
875
4
                          bool has_null_key = data.has_null_key_data();
876
4
                          const auto size = data.size() - has_null_key;
877
4
                          using KeyType = std::decay_t<decltype(agg_method)>::Key;
878
4
                          std::vector<KeyType> keys(size);
879
880
4
                          uint32_t num_rows = 0;
881
4
                          auto iter = _agg_data_container->begin();
882
4
                          {
883
27
                              while (iter != _agg_data_container->end()) {
884
23
                                  keys[num_rows] = iter.get_key<KeyType>();
885
23
                                  ++iter;
886
23
                                  ++num_rows;
887
23
                              }
888
4
                          }
889
4
                          agg_method.insert_keys_into_columns(keys, key_columns, num_rows);
890
4
                          if (has_null_key) {
891
1
                              key_columns[0]->insert_data(nullptr, 0);
892
1
                          }
893
4
                          return key_columns;
894
4
                      }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext20_get_keys_hash_tableEvENK3$_1clIRNS_16MethodSerializedI9PHHashMapINS_9StringRefEPc11DefaultHashIS5_vEEEEEESt6vectorINS_3COWINS_7IColumnEE11mutable_ptrISE_EESaISH_EEOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext20_get_keys_hash_tableEvENK3$_1clIRNS_15MethodOneNumberIh9PHHashMapIhPc9HashCRC32IhEEEEEESt6vectorINS_3COWINS_7IColumnEE11mutable_ptrISD_EESaISG_EEOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext20_get_keys_hash_tableEvENK3$_1clIRNS_15MethodOneNumberIt9PHHashMapItPc9HashCRC32ItEEEEEESt6vectorINS_3COWINS_7IColumnEE11mutable_ptrISD_EESaISG_EEOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext20_get_keys_hash_tableEvENK3$_1clIRNS_15MethodOneNumberIj9PHHashMapIjPc9HashCRC32IjEEEEEESt6vectorINS_3COWINS_7IColumnEE11mutable_ptrISD_EESaISG_EEOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext20_get_keys_hash_tableEvENK3$_1clIRNS_15MethodOneNumberIm9PHHashMapImPc9HashCRC32ImEEEEEESt6vectorINS_3COWINS_7IColumnEE11mutable_ptrISD_EESaISG_EEOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext20_get_keys_hash_tableEvENK3$_1clIRNS_19MethodStringNoCacheINS_13StringHashMapIPcNS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEESt6vectorINS_3COWINS_7IColumnEE11mutable_ptrISE_EESaISH_EEOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext20_get_keys_hash_tableEvENK3$_1clIRNS_15MethodOneNumberIN4wide7integerILm128EjEE9PHHashMapIS6_Pc9HashCRC32IS6_EEEEEESt6vectorINS_3COWINS_7IColumnEE11mutable_ptrISG_EESaISJ_EEOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext20_get_keys_hash_tableEvENK3$_1clIRNS_15MethodOneNumberIN4wide7integerILm256EjEE9PHHashMapIS6_Pc9HashCRC32IS6_EEEEEESt6vectorINS_3COWINS_7IColumnEE11mutable_ptrISG_EESaISJ_EEOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext20_get_keys_hash_tableEvENK3$_1clIRNS_15MethodOneNumberIj9PHHashMapIjPc14HashMixWrapperIj9HashCRC32IjEEEEEEESt6vectorINS_3COWINS_7IColumnEE11mutable_ptrISF_EESaISI_EEOT_
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext20_get_keys_hash_tableEvENK3$_1clIRNS_15MethodOneNumberIm9PHHashMapImPc14HashMixWrapperIm9HashCRC32ImEEEEEEESt6vectorINS_3COWINS_7IColumnEE11mutable_ptrISF_EESaISI_EEOT_
Line
Count
Source
868
2
                      [&](auto&& agg_method) -> MutableColumns {
869
2
                          MutableColumns key_columns;
870
4
                          for (int i = 0; i < _groupby_expr_ctxs.size(); ++i) {
871
2
                              key_columns.emplace_back(
872
2
                                      _groupby_expr_ctxs[i]->root()->data_type()->create_column());
873
2
                          }
874
2
                          auto& data = *agg_method.hash_table;
875
2
                          bool has_null_key = data.has_null_key_data();
876
2
                          const auto size = data.size() - has_null_key;
877
2
                          using KeyType = std::decay_t<decltype(agg_method)>::Key;
878
2
                          std::vector<KeyType> keys(size);
879
880
2
                          uint32_t num_rows = 0;
881
2
                          auto iter = _agg_data_container->begin();
882
2
                          {
883
14
                              while (iter != _agg_data_container->end()) {
884
12
                                  keys[num_rows] = iter.get_key<KeyType>();
885
12
                                  ++iter;
886
12
                                  ++num_rows;
887
12
                              }
888
2
                          }
889
2
                          agg_method.insert_keys_into_columns(keys, key_columns, num_rows);
890
2
                          if (has_null_key) {
891
0
                              key_columns[0]->insert_data(nullptr, 0);
892
0
                          }
893
2
                          return key_columns;
894
2
                      }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext20_get_keys_hash_tableEvENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI9PHHashMapIhPc9HashCRC32IhEEEEEEEEEESt6vectorINS_3COWINS_7IColumnEE11mutable_ptrISH_EESaISK_EEOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext20_get_keys_hash_tableEvENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashMapItPc9HashCRC32ItEEEEEEEEEESt6vectorINS_3COWINS_7IColumnEE11mutable_ptrISH_EESaISK_EEOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext20_get_keys_hash_tableEvENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjPc9HashCRC32IjEEEEEEEEEESt6vectorINS_3COWINS_7IColumnEE11mutable_ptrISH_EESaISK_EEOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext20_get_keys_hash_tableEvENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImPc9HashCRC32ImEEEEEEEEEESt6vectorINS_3COWINS_7IColumnEE11mutable_ptrISH_EESaISK_EEOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext20_get_keys_hash_tableEvENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashMapIjPc14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEESt6vectorINS_3COWINS_7IColumnEE11mutable_ptrISJ_EESaISM_EEOT_
groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext20_get_keys_hash_tableEvENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashMapImPc14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEESt6vectorINS_3COWINS_7IColumnEE11mutable_ptrISJ_EESaISM_EEOT_
Line
Count
Source
868
2
                      [&](auto&& agg_method) -> MutableColumns {
869
2
                          MutableColumns key_columns;
870
4
                          for (int i = 0; i < _groupby_expr_ctxs.size(); ++i) {
871
2
                              key_columns.emplace_back(
872
2
                                      _groupby_expr_ctxs[i]->root()->data_type()->create_column());
873
2
                          }
874
2
                          auto& data = *agg_method.hash_table;
875
2
                          bool has_null_key = data.has_null_key_data();
876
2
                          const auto size = data.size() - has_null_key;
877
2
                          using KeyType = std::decay_t<decltype(agg_method)>::Key;
878
2
                          std::vector<KeyType> keys(size);
879
880
2
                          uint32_t num_rows = 0;
881
2
                          auto iter = _agg_data_container->begin();
882
2
                          {
883
13
                              while (iter != _agg_data_container->end()) {
884
11
                                  keys[num_rows] = iter.get_key<KeyType>();
885
11
                                  ++iter;
886
11
                                  ++num_rows;
887
11
                              }
888
2
                          }
889
2
                          agg_method.insert_keys_into_columns(keys, key_columns, num_rows);
890
2
                          if (has_null_key) {
891
1
                              key_columns[0]->insert_data(nullptr, 0);
892
1
                          }
893
2
                          return key_columns;
894
2
                      }},
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext20_get_keys_hash_tableEvENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashMapIS7_Pc9HashCRC32IS7_EEEEEEEEEESt6vectorINS_3COWINS_7IColumnEE11mutable_ptrISK_EESaISN_EEOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext20_get_keys_hash_tableEvENK3$_1clIRNS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashMapIS7_Pc9HashCRC32IS7_EEEEEEEEEESt6vectorINS_3COWINS_7IColumnEE11mutable_ptrISK_EESaISN_EEOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext20_get_keys_hash_tableEvENK3$_1clIRNS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyINS_13StringHashMapIPcNS_9AllocatorILb1ELb1ELb0ENS_22DefaultMemoryAllocatorELb1EEEEEEEEEEEEESt6vectorINS_3COWINS_7IColumnEE11mutable_ptrISI_EESaISL_EEOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext20_get_keys_hash_tableEvENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapImPc9HashCRC32ImEEEEEESt6vectorINS_3COWINS_7IColumnEE11mutable_ptrISD_EESaISG_EEOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext20_get_keys_hash_tableEvENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapINS_6UInt72EPc9HashCRC32IS5_EEEEEESt6vectorINS_3COWINS_7IColumnEE11mutable_ptrISE_EESaISH_EEOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext20_get_keys_hash_tableEvENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapINS_6UInt96EPc9HashCRC32IS5_EEEEEESt6vectorINS_3COWINS_7IColumnEE11mutable_ptrISE_EESaISH_EEOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext20_get_keys_hash_tableEvENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapINS_7UInt104EPc9HashCRC32IS5_EEEEEESt6vectorINS_3COWINS_7IColumnEE11mutable_ptrISE_EESaISH_EEOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext20_get_keys_hash_tableEvENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm128EjEEPc9HashCRC32IS7_EEEEEESt6vectorINS_3COWINS_7IColumnEE11mutable_ptrISG_EESaISJ_EEOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext20_get_keys_hash_tableEvENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapINS_7UInt136EPc9HashCRC32IS5_EEEEEESt6vectorINS_3COWINS_7IColumnEE11mutable_ptrISE_EESaISH_EEOT_
Unexecuted instantiation: groupby_agg_context.cpp:_ZZN5doris17GroupByAggContext20_get_keys_hash_tableEvENK3$_1clIRNS_15MethodKeysFixedI9PHHashMapIN4wide7integerILm256EjEEPc9HashCRC32IS7_EEEEEESt6vectorINS_3COWINS_7IColumnEE11mutable_ptrISG_EESaISJ_EEOT_
895
4
            _hash_table_data->method_variant);
896
4
}
897
898
4
void GroupByAggContext::build_limit_heap(size_t hash_table_size_val) {
899
4
    _limit_columns = _get_keys_hash_table();
900
28
    for (size_t i = 0; i < hash_table_size_val; ++i) {
901
24
        _limit_heap.emplace(i, _limit_columns, order_directions, null_directions);
902
24
    }
903
16
    while (hash_table_size_val > limit) {
904
12
        _limit_heap.pop();
905
12
        hash_table_size_val--;
906
12
    }
907
4
    _limit_columns_min = _limit_heap.top()._row_id;
908
4
}
909
910
8
bool GroupByAggContext::do_limit_filter(size_t num_rows, const ColumnRawPtrs& key_columns) {
911
8
    if (num_rows) {
912
8
        _cmp_res.resize(num_rows);
913
8
        _need_computes.resize(num_rows);
914
8
        memset(_need_computes.data(), 0, _need_computes.size());
915
8
        memset(_cmp_res.data(), 0, _cmp_res.size());
916
917
8
        const auto key_size = null_directions.size();
918
16
        for (int i = 0; i < key_size; i++) {
919
8
            key_columns[i]->compare_internal(_limit_columns_min, *_limit_columns[i],
920
8
                                             null_directions[i], order_directions[i], _cmp_res,
921
8
                                             _need_computes.data());
922
8
        }
923
924
8
        auto set_computes_arr = [](auto* __restrict res, auto* __restrict computes, size_t rows) {
925
58
            for (size_t i = 0; i < rows; ++i) {
926
50
                computes[i] = computes[i] == res[i];
927
50
            }
928
8
        };
929
8
        set_computes_arr(_cmp_res.data(), _need_computes.data(), num_rows);
930
931
8
        return std::find(_need_computes.begin(), _need_computes.end(), 0) != _need_computes.end();
932
8
    }
933
934
0
    return false;
935
8
}
936
937
4
void GroupByAggContext::refresh_top_limit(size_t row_id, const ColumnRawPtrs& key_columns) {
938
8
    for (int j = 0; j < key_columns.size(); ++j) {
939
4
        _limit_columns[j]->insert_from(*key_columns[j], row_id);
940
4
    }
941
4
    _limit_heap.emplace(_limit_columns[0]->size() - 1, _limit_columns, order_directions,
942
4
                        null_directions);
943
944
4
    _limit_heap.pop();
945
4
    _limit_columns_min = _limit_heap.top()._row_id;
946
4
}
947
948
0
void GroupByAggContext::add_limit_heap_top(ColumnRawPtrs& key_columns, size_t rows) {
949
0
    for (size_t i = 0; i < rows; ++i) {
950
0
        if (_cmp_res[i] == 1 && _need_computes[i]) {
951
0
            for (size_t j = 0; j < key_columns.size(); ++j) {
952
0
                _limit_columns[j]->insert_from(*key_columns[j], i);
953
0
            }
954
0
            _limit_heap.emplace(_limit_columns[0]->size() - 1, _limit_columns, order_directions,
955
0
                                null_directions);
956
0
            _limit_heap.pop();
957
0
            _limit_columns_min = _limit_heap.top()._row_id;
958
0
            break;
959
0
        }
960
0
    }
961
0
}
962
963
// ==================== Static utilities ====================
964
965
void GroupByAggContext::make_nullable_output_key(Block* block,
966
0
                                                const std::vector<size_t>& make_nullable_keys) {
967
0
    if (block->rows() != 0) {
968
0
        for (auto cid : make_nullable_keys) {
969
0
            block->get_by_position(cid).column = make_nullable(block->get_by_position(cid).column);
970
0
            block->get_by_position(cid).type = make_nullable(block->get_by_position(cid).type);
971
0
        }
972
0
    }
973
0
}
974
975
6
int GroupByAggContext::get_slot_column_id(const AggFnEvaluator* evaluator) {
976
6
    return agg_context_utils::get_slot_column_id(evaluator);
977
6
}
978
979
} // namespace doris