Coverage Report

Created: 2026-03-15 01:14

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exec/pipeline/rec_cte_shared_state.h
Line
Count
Source
1
// Licensed to the Apache Software Foundation (ASF) under one
2
// or more contributor license agreements.  See the NOTICE file
3
// distributed with this work for additional information
4
// regarding copyright ownership.  The ASF licenses this file
5
// to you under the Apache License, Version 2.0 (the
6
// "License"); you may not use this file except in compliance
7
// with the License.  You may obtain a copy of the License at
8
//
9
//   http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing,
12
// software distributed under the License is distributed on an
13
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
// KIND, either express or implied.  See the License for the
15
// specific language governing permissions and limitations
16
// under the License.
17
18
#pragma once
19
20
#include "exec/common/distinct_agg_utils.h"
21
#include "exec/pipeline/dependency.h"
22
#include "util/brpc_client_cache.h"
23
24
namespace doris {
25
#include "common/compile_check_begin.h"
26
27
struct RecCTESharedState : public BasicSharedState {
28
    std::vector<TRecCTETarget> targets;
29
    std::vector<Block> blocks;
30
    IColumn::Selector distinct_row;
31
    Dependency* source_dep = nullptr;
32
    Dependency* anchor_dep = nullptr;
33
    Arena arena;
34
    RuntimeProfile::Counter* hash_table_compute_timer = nullptr;
35
    RuntimeProfile::Counter* hash_table_emplace_timer = nullptr;
36
    RuntimeProfile::Counter* hash_table_input_counter = nullptr;
37
38
    std::unique_ptr<DistinctDataVariants> agg_data = nullptr;
39
40
    int current_round = 0;
41
    int last_round_offset = 0;
42
    int max_recursion_depth = 0;
43
    bool ready_to_return = false;
44
45
0
    void update_ready_to_return() {
46
0
        if (last_round_offset == blocks.size()) {
47
0
            ready_to_return = true;
48
0
        }
49
0
    }
50
51
0
    Status emplace_block(RuntimeState* state, Block&& block) {
52
0
        if (agg_data) {
53
0
            auto num_rows = uint32_t(block.rows());
54
0
            ColumnRawPtrs raw_columns;
55
0
            std::vector<ColumnPtr> columns = block.get_columns_and_convert();
56
0
            for (auto& col : columns) {
57
0
                raw_columns.push_back(col.get());
58
0
            }
59
60
0
            std::visit(Overload {[&](std::monostate& arg) -> void {
61
0
                                     throw doris::Exception(ErrorCode::INTERNAL_ERROR,
62
0
                                                            "uninited hash table");
63
0
                                 },
64
0
                                 [&](auto& agg_method) -> void {
65
0
                                     SCOPED_TIMER(hash_table_compute_timer);
66
0
                                     using HashMethodType = std::decay_t<decltype(agg_method)>;
67
0
                                     using AggState = typename HashMethodType::State;
68
69
0
                                     AggState agg_state(raw_columns);
70
0
                                     agg_method.init_serialized_keys(raw_columns, num_rows);
71
0
                                     distinct_row.clear();
72
73
0
                                     size_t row = 0;
74
0
                                     auto creator = [&](const auto& ctor, auto& key, auto& origin) {
75
0
                                         HashMethodType::try_presis_key(key, origin, arena);
76
0
                                         ctor(key);
77
0
                                         distinct_row.push_back(row);
78
0
                                     };
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodKeysFixedI9PHHashSetIN4wide7integerILm256EjEE9HashCRC32ISD_EEEEEEvS6_ENKUlRKS5_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSR_17FlatHashSetPolicyISD_EESF_NS_7EqualToISD_EENS_10Allocator_ISD_EEE11constructorESD_SD_EEDaSJ_SL_SN_
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodKeysFixedI9PHHashSetINS_7UInt136E9HashCRC32ISB_EEEEEEvS6_ENKUlRKS5_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSP_17FlatHashSetPolicyISB_EESD_NS_7EqualToISB_EENS_10Allocator_ISB_EEE11constructorESB_SB_EEDaSH_SJ_SL_
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodKeysFixedI9PHHashSetIN4wide7integerILm128EjEE9HashCRC32ISD_EEEEEEvS6_ENKUlRKS5_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSR_17FlatHashSetPolicyISD_EESF_NS_7EqualToISD_EENS_10Allocator_ISD_EEE11constructorESD_SD_EEDaSJ_SL_SN_
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodKeysFixedI9PHHashSetINS_7UInt104E9HashCRC32ISB_EEEEEEvS6_ENKUlRKS5_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSP_17FlatHashSetPolicyISB_EESD_NS_7EqualToISB_EENS_10Allocator_ISB_EEE11constructorESB_SB_EEDaSH_SJ_SL_
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodKeysFixedI9PHHashSetINS_6UInt96E9HashCRC32ISB_EEEEEEvS6_ENKUlRKS5_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSP_17FlatHashSetPolicyISB_EESD_NS_7EqualToISB_EENS_10Allocator_ISB_EEE11constructorESB_SB_EEDaSH_SJ_SL_
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodKeysFixedI9PHHashSetINS_6UInt72E9HashCRC32ISB_EEEEEEvS6_ENKUlRKS5_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSP_17FlatHashSetPolicyISB_EESD_NS_7EqualToISB_EENS_10Allocator_ISB_EEE11constructorESB_SB_EEDaSH_SJ_SL_
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodKeysFixedI9PHHashSetIm9HashCRC32ImEEEEEEvS6_ENKUlRKS5_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSO_17FlatHashSetPolicyImEESC_NS_7EqualToImEENS_10Allocator_ImEEE11constructorEmmEEDaSG_SI_SK_
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyI9PHHashSetINS_9StringRefE11DefaultHashISD_vEEEEEEEEEEvS6_ENKUlRKS5_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINST_17FlatHashSetPolicyISD_EESF_NS_7EqualToISD_EENS_10Allocator_ISD_EEE11constructorESD_SD_EEDaSL_SN_SP_
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashSetISD_9HashCRC32ISD_EEEEEEEEEEvS6_ENKUlRKS5_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSV_17FlatHashSetPolicyISD_EESH_NS_7EqualToISD_EENS_10Allocator_ISD_EEE11constructorESD_SD_EEDaSN_SP_SR_
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashSetISD_9HashCRC32ISD_EEEEEEEEEEvS6_ENKUlRKS5_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSV_17FlatHashSetPolicyISD_EESH_NS_7EqualToISD_EENS_10Allocator_ISD_EEE11constructorESD_SD_EEDaSN_SP_SR_
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashSetIm14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEEvS6_ENKUlRKS5_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSU_17FlatHashSetPolicyImEESG_NS_7EqualToImEENS_10Allocator_ImEEE11constructorEmmEEDaSM_SO_SQ_
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashSetIj14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEEvS6_ENKUlRKS5_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSU_17FlatHashSetPolicyIjEESG_NS_7EqualToIjEENS_10Allocator_IjEEE11constructorEjjEEDaSM_SO_SQ_
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashSetIm9HashCRC32ImEEEEEEEEEEvS6_ENKUlRKS5_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSS_17FlatHashSetPolicyImEESE_NS_7EqualToImEENS_10Allocator_ImEEE11constructorEmmEEDaSK_SM_SO_
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashSetIj9HashCRC32IjEEEEEEEEEEvS6_ENKUlRKS5_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSS_17FlatHashSetPolicyIjEESE_NS_7EqualToIjEENS_10Allocator_IjEEE11constructorEjjEEDaSK_SM_SO_
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashSetIt9HashCRC32ItEEEEEEEEEEvS6_ENKUlRKS5_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSS_17FlatHashSetPolicyItEESE_NS_7EqualToItEENS_10Allocator_ItEEE11constructorEttEEDaSK_SM_SO_
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI21SmallFixedSizeHashSetIhEEEEEEEEEvS6_ENKUlRKS5_RT0_RT1_E_clIZNSD_12lazy_emplaceIRhRSN_EEvOS5_RPvmOSJ_EUlS6_E_hhEEDaSI_SK_SM_
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodOneNumberIm9PHHashSetIm14HashMixWrapperIm9HashCRC32ImEEEEEEEvS6_ENKUlRKS5_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSQ_17FlatHashSetPolicyImEESE_NS_7EqualToImEENS_10Allocator_ImEEE11constructorEmmEEDaSI_SK_SM_
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodOneNumberIj9PHHashSetIj14HashMixWrapperIj9HashCRC32IjEEEEEEEvS6_ENKUlRKS5_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSQ_17FlatHashSetPolicyIjEESE_NS_7EqualToIjEENS_10Allocator_IjEEE11constructorEjjEEDaSI_SK_SM_
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodOneNumberIN4wide7integerILm256EjEE9PHHashSetISC_9HashCRC32ISC_EEEEEEvS6_ENKUlRKS5_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSR_17FlatHashSetPolicyISC_EESF_NS_7EqualToISC_EENS_10Allocator_ISC_EEE11constructorESC_SC_EEDaSJ_SL_SN_
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodOneNumberIN4wide7integerILm128EjEE9PHHashSetISC_9HashCRC32ISC_EEEEEEvS6_ENKUlRKS5_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSR_17FlatHashSetPolicyISC_EESF_NS_7EqualToISC_EENS_10Allocator_ISC_EEE11constructorESC_SC_EEDaSJ_SL_SN_
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_19MethodStringNoCacheI9PHHashSetINS_9StringRefE11DefaultHashISB_vEEEEEEvS6_ENKUlRKS5_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSP_17FlatHashSetPolicyISB_EESD_NS_7EqualToISB_EENS_10Allocator_ISB_EEE11constructorESB_SB_EEDaSH_SJ_SL_
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodOneNumberIm9PHHashSetIm9HashCRC32ImEEEEEEvS6_ENKUlRKS5_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSO_17FlatHashSetPolicyImEESC_NS_7EqualToImEENS_10Allocator_ImEEE11constructorEmmEEDaSG_SI_SK_
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodOneNumberIj9PHHashSetIj9HashCRC32IjEEEEEEvS6_ENKUlRKS5_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSO_17FlatHashSetPolicyIjEESC_NS_7EqualToIjEENS_10Allocator_IjEEE11constructorEjjEEDaSG_SI_SK_
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodOneNumberIt9PHHashSetIt9HashCRC32ItEEEEEEvS6_ENKUlRKS5_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSO_17FlatHashSetPolicyItEESC_NS_7EqualToItEENS_10Allocator_ItEEE11constructorEttEEDaSG_SI_SK_
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodOneNumberIh21SmallFixedSizeHashSetIhEEEEEvS6_ENKUlRKS5_RT0_RT1_E_clIZNSB_12lazy_emplaceIRhRSJ_EEvOS5_RPvmOSF_EUlS6_E_hhEEDaSE_SG_SI_
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_16MethodSerializedI9PHHashSetINS_9StringRefE11DefaultHashISB_vEEEEEEvS6_ENKUlRKS5_RT0_RT1_E_clIN5phmap4priv12raw_hash_setINSP_17FlatHashSetPolicyISB_EESD_NS_7EqualToISB_EENS_10Allocator_ISB_EEE11constructorESB_SB_EEDaSH_SJ_SL_
79
0
                                     auto creator_for_null_key = [&]() {
80
0
                                         distinct_row.push_back(row);
81
0
                                     };
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI21SmallFixedSizeHashSetIhEEEEEEEEEvS6_ENKUlvE_clEv
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashSetIt9HashCRC32ItEEEEEEEEEEvS6_ENKUlvE_clEv
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashSetIj9HashCRC32IjEEEEEEEEEEvS6_ENKUlvE_clEv
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashSetIm9HashCRC32ImEEEEEEEEEEvS6_ENKUlvE_clEv
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashSetIj14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEEvS6_ENKUlvE_clEv
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashSetIm14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEEvS6_ENKUlvE_clEv
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashSetISD_9HashCRC32ISD_EEEEEEEEEEvS6_ENKUlvE_clEv
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashSetISD_9HashCRC32ISD_EEEEEEEEEEvS6_ENKUlvE_clEv
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyI9PHHashSetINS_9StringRefE11DefaultHashISD_vEEEEEEEEEEvS6_ENKUlvE_clEv
82
83
0
                                     SCOPED_TIMER(hash_table_emplace_timer);
84
0
                                     lazy_emplace_batch_void(agg_method, agg_state, num_rows,
85
0
                                                             creator, creator_for_null_key,
86
0
                                                             [&](uint32_t r) { row = r; });
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_16MethodSerializedI9PHHashSetINS_9StringRefE11DefaultHashISB_vEEEEEEvS6_ENKUljE_clEj
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodOneNumberIh21SmallFixedSizeHashSetIhEEEEEvS6_ENKUljE_clEj
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodOneNumberIt9PHHashSetIt9HashCRC32ItEEEEEEvS6_ENKUljE_clEj
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodOneNumberIj9PHHashSetIj9HashCRC32IjEEEEEEvS6_ENKUljE_clEj
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodOneNumberIm9PHHashSetIm9HashCRC32ImEEEEEEvS6_ENKUljE_clEj
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_19MethodStringNoCacheI9PHHashSetINS_9StringRefE11DefaultHashISB_vEEEEEEvS6_ENKUljE_clEj
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodOneNumberIN4wide7integerILm128EjEE9PHHashSetISC_9HashCRC32ISC_EEEEEEvS6_ENKUljE_clEj
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodOneNumberIN4wide7integerILm256EjEE9PHHashSetISC_9HashCRC32ISC_EEEEEEvS6_ENKUljE_clEj
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodOneNumberIj9PHHashSetIj14HashMixWrapperIj9HashCRC32IjEEEEEEEvS6_ENKUljE_clEj
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodOneNumberIm9PHHashSetIm14HashMixWrapperIm9HashCRC32ImEEEEEEEvS6_ENKUljE_clEj
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI21SmallFixedSizeHashSetIhEEEEEEEEEvS6_ENKUljE_clEj
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashSetIt9HashCRC32ItEEEEEEEEEEvS6_ENKUljE_clEj
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashSetIj9HashCRC32IjEEEEEEEEEEvS6_ENKUljE_clEj
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashSetIm9HashCRC32ImEEEEEEEEEEvS6_ENKUljE_clEj
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashSetIj14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEEvS6_ENKUljE_clEj
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashSetIm14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEEvS6_ENKUljE_clEj
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashSetISD_9HashCRC32ISD_EEEEEEEEEEvS6_ENKUljE_clEj
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashSetISD_9HashCRC32ISD_EEEEEEEEEEvS6_ENKUljE_clEj
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyI9PHHashSetINS_9StringRefE11DefaultHashISD_vEEEEEEEEEEvS6_ENKUljE_clEj
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodKeysFixedI9PHHashSetIm9HashCRC32ImEEEEEEvS6_ENKUljE_clEj
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodKeysFixedI9PHHashSetINS_6UInt72E9HashCRC32ISB_EEEEEEvS6_ENKUljE_clEj
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodKeysFixedI9PHHashSetINS_6UInt96E9HashCRC32ISB_EEEEEEvS6_ENKUljE_clEj
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodKeysFixedI9PHHashSetINS_7UInt104E9HashCRC32ISB_EEEEEEvS6_ENKUljE_clEj
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodKeysFixedI9PHHashSetIN4wide7integerILm128EjEE9HashCRC32ISD_EEEEEEvS6_ENKUljE_clEj
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodKeysFixedI9PHHashSetINS_7UInt136E9HashCRC32ISB_EEEEEEvS6_ENKUljE_clEj
Unexecuted instantiation: _ZZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodKeysFixedI9PHHashSetIN4wide7integerILm256EjEE9HashCRC32ISD_EEEEEEvS6_ENKUljE_clEj
87
0
                                     COUNTER_UPDATE(hash_table_input_counter, num_rows);
88
0
                                 }},
Unexecuted instantiation: _ZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodKeysFixedI9PHHashSetIN4wide7integerILm256EjEE9HashCRC32ISD_EEEEEEvS6_
Unexecuted instantiation: _ZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodKeysFixedI9PHHashSetINS_7UInt136E9HashCRC32ISB_EEEEEEvS6_
Unexecuted instantiation: _ZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodKeysFixedI9PHHashSetIN4wide7integerILm128EjEE9HashCRC32ISD_EEEEEEvS6_
Unexecuted instantiation: _ZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodKeysFixedI9PHHashSetINS_7UInt104E9HashCRC32ISB_EEEEEEvS6_
Unexecuted instantiation: _ZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodKeysFixedI9PHHashSetINS_6UInt96E9HashCRC32ISB_EEEEEEvS6_
Unexecuted instantiation: _ZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodKeysFixedI9PHHashSetINS_6UInt72E9HashCRC32ISB_EEEEEEvS6_
Unexecuted instantiation: _ZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodKeysFixedI9PHHashSetIm9HashCRC32ImEEEEEEvS6_
Unexecuted instantiation: _ZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_19MethodStringNoCacheINS_15DataWithNullKeyI9PHHashSetINS_9StringRefE11DefaultHashISD_vEEEEEEEEEEvS6_
Unexecuted instantiation: _ZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm256EjEENS_15DataWithNullKeyI9PHHashSetISD_9HashCRC32ISD_EEEEEEEEEEvS6_
Unexecuted instantiation: _ZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIN4wide7integerILm128EjEENS_15DataWithNullKeyI9PHHashSetISD_9HashCRC32ISD_EEEEEEEEEEvS6_
Unexecuted instantiation: _ZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashSetIm14HashMixWrapperIm9HashCRC32ImEEEEEEEEEEEvS6_
Unexecuted instantiation: _ZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashSetIj14HashMixWrapperIj9HashCRC32IjEEEEEEEEEEEvS6_
Unexecuted instantiation: _ZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberImNS_15DataWithNullKeyI9PHHashSetIm9HashCRC32ImEEEEEEEEEEvS6_
Unexecuted instantiation: _ZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIjNS_15DataWithNullKeyI9PHHashSetIj9HashCRC32IjEEEEEEEEEEvS6_
Unexecuted instantiation: _ZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberItNS_15DataWithNullKeyI9PHHashSetIt9HashCRC32ItEEEEEEEEEEvS6_
Unexecuted instantiation: _ZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_26MethodSingleNullableColumnINS_15MethodOneNumberIhNS_15DataWithNullKeyI21SmallFixedSizeHashSetIhEEEEEEEEEvS6_
Unexecuted instantiation: _ZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodOneNumberIm9PHHashSetIm14HashMixWrapperIm9HashCRC32ImEEEEEEEvS6_
Unexecuted instantiation: _ZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodOneNumberIj9PHHashSetIj14HashMixWrapperIj9HashCRC32IjEEEEEEEvS6_
Unexecuted instantiation: _ZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodOneNumberIN4wide7integerILm256EjEE9PHHashSetISC_9HashCRC32ISC_EEEEEEvS6_
Unexecuted instantiation: _ZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodOneNumberIN4wide7integerILm128EjEE9PHHashSetISC_9HashCRC32ISC_EEEEEEvS6_
Unexecuted instantiation: _ZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_19MethodStringNoCacheI9PHHashSetINS_9StringRefE11DefaultHashISB_vEEEEEEvS6_
Unexecuted instantiation: _ZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodOneNumberIm9PHHashSetIm9HashCRC32ImEEEEEEvS6_
Unexecuted instantiation: _ZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodOneNumberIj9PHHashSetIj9HashCRC32IjEEEEEEvS6_
Unexecuted instantiation: _ZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodOneNumberIt9PHHashSetIt9HashCRC32ItEEEEEEvS6_
Unexecuted instantiation: _ZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_15MethodOneNumberIh21SmallFixedSizeHashSetIhEEEEEvS6_
Unexecuted instantiation: _ZZN5doris17RecCTESharedState13emplace_blockEPNS_12RuntimeStateEONS_5BlockEENKUlRT_E_clINS_16MethodSerializedI9PHHashSetINS_9StringRefE11DefaultHashISB_vEEEEEEvS6_
89
0
                       agg_data->method_variant);
90
91
0
            if (distinct_row.size() == block.rows()) {
92
0
                blocks.emplace_back(std::move(block));
93
0
            } else if (!distinct_row.empty()) {
94
0
                auto distinct_block = MutableBlock(block.clone_empty());
95
0
                RETURN_IF_ERROR(block.append_to_block_by_selector(&distinct_block, distinct_row));
96
0
                blocks.emplace_back(distinct_block.to_block());
97
0
            }
98
0
        } else {
99
0
            blocks.emplace_back(std::move(block));
100
0
        }
101
0
        return Status::OK();
102
0
    }
103
104
    PTransmitRecCTEBlockParams build_basic_param(RuntimeState* state,
105
0
                                                 const TRecCTETarget& target) const {
106
0
        PTransmitRecCTEBlockParams request;
107
0
        request.set_node_id(target.node_id);
108
0
        request.mutable_query_id()->CopyFrom(UniqueId(state->query_id()).to_proto());
109
0
        request.mutable_fragment_instance_id()->CopyFrom(
110
0
                UniqueId(target.fragment_instance_id).to_proto());
111
0
        return request;
112
0
    }
113
114
0
    Status send_data_to_targets(RuntimeState* state, size_t round_offset) const {
115
0
        if (targets.size() == 0) {
116
0
            return Status::OK();
117
0
        }
118
0
        int send_multi_blocks_byte_size = state->query_options().exchange_multi_blocks_byte_size;
119
0
        int block_number_per_target =
120
0
                int(blocks.size() - round_offset + targets.size() - 1) / targets.size();
121
0
        for (auto target : targets) {
122
0
            auto stub =
123
0
                    state->get_query_ctx()->exec_env()->brpc_internal_client_cache()->get_client(
124
0
                            target.addr);
125
0
            if (!stub) {
126
0
                return Status::InternalError(fmt::format("Get rpc stub failed, host={}, port={}",
127
0
                                                         target.addr.hostname, target.addr.port));
128
0
            }
129
130
            // send blocks
131
0
            int step = block_number_per_target;
132
0
            while (round_offset < blocks.size() && step > 0) {
133
0
                PTransmitRecCTEBlockParams request = build_basic_param(state, target);
134
0
                auto current_bytes = 0;
135
0
                while (round_offset < blocks.size() && step > 0 &&
136
0
                       current_bytes < send_multi_blocks_byte_size) {
137
0
                    auto* pblock = request.add_blocks();
138
0
                    size_t uncompressed_bytes = 0;
139
0
                    size_t compressed_bytes = 0;
140
0
                    int64_t compress_time;
141
0
                    RETURN_IF_ERROR(blocks[round_offset].serialize(
142
0
                            state->be_exec_version(), pblock, &uncompressed_bytes,
143
0
                            &compressed_bytes, &compress_time,
144
0
                            state->fragement_transmission_compression_type()));
145
0
                    round_offset++;
146
0
                    step--;
147
0
                    current_bytes += compressed_bytes;
148
0
                }
149
0
                request.set_eos(false);
150
151
0
                PTransmitRecCTEBlockResult result;
152
0
                brpc::Controller controller;
153
0
                controller.set_timeout_ms(
154
0
                        get_execution_rpc_timeout_ms(state->get_query_ctx()->execution_timeout()));
155
156
0
                stub->transmit_rec_cte_block(&controller, &request, &result, brpc::DoNothing());
157
0
                brpc::Join(controller.call_id());
158
0
                RETURN_IF_ERROR(Status::create(result.status()));
159
0
            }
160
161
            // send eos
162
0
            {
163
0
                PTransmitRecCTEBlockParams request = build_basic_param(state, target);
164
0
                request.set_eos(true);
165
166
0
                PTransmitRecCTEBlockResult result;
167
0
                brpc::Controller controller;
168
0
                stub->transmit_rec_cte_block(&controller, &request, &result, brpc::DoNothing());
169
0
                brpc::Join(controller.call_id());
170
0
                RETURN_IF_ERROR(Status::create(result.status()));
171
0
            }
172
0
        }
173
0
        return Status::OK();
174
0
    }
175
};
176
177
#include "common/compile_check_end.h"
178
} // namespace doris