Coverage Report

Created: 2026-09-17 08:03

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
be/src/exec/operator/operator.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/operator/operator.h"
19
20
#include <algorithm>
21
22
#include "common/status.h"
23
#include "exec/common/util.hpp"
24
#include "exec/exchange/local_exchange_sink_operator.h"
25
#include "exec/exchange/local_exchange_source_operator.h"
26
#include "exec/operator/aggregation_sink_operator.h"
27
#include "exec/operator/aggregation_source_operator.h"
28
#include "exec/operator/analytic_sink_operator.h"
29
#include "exec/operator/analytic_source_operator.h"
30
#include "exec/operator/assert_num_rows_operator.h"
31
#include "exec/operator/blackhole_sink_operator.h"
32
#include "exec/operator/bucketed_aggregation_sink_operator.h"
33
#include "exec/operator/bucketed_aggregation_source_operator.h"
34
#include "exec/operator/cache_sink_operator.h"
35
#include "exec/operator/cache_source_operator.h"
36
#include "exec/operator/datagen_operator.h"
37
#include "exec/operator/dict_sink_operator.h"
38
#include "exec/operator/distinct_streaming_aggregation_operator.h"
39
#include "exec/operator/empty_set_operator.h"
40
#include "exec/operator/exchange_sink_operator.h"
41
#include "exec/operator/exchange_source_operator.h"
42
#include "exec/operator/file_scan_operator.h"
43
#include "exec/operator/group_commit_block_sink_operator.h"
44
#include "exec/operator/group_commit_scan_operator.h"
45
#include "exec/operator/hashjoin_build_sink.h"
46
#include "exec/operator/hashjoin_probe_operator.h"
47
#include "exec/operator/hive_table_sink_operator.h"
48
#include "exec/operator/iceberg_delete_sink_operator.h"
49
#include "exec/operator/iceberg_merge_sink_operator.h"
50
#include "exec/operator/iceberg_table_sink_operator.h"
51
#include "exec/operator/jdbc_scan_operator.h"
52
#include "exec/operator/jdbc_table_sink_operator.h"
53
#include "exec/operator/local_merge_sort_source_operator.h"
54
#include "exec/operator/materialization_opertor.h"
55
#include "exec/operator/maxcompute_table_sink_operator.h"
56
#include "exec/operator/memory_scratch_sink_operator.h"
57
#include "exec/operator/meta_scan_operator.h"
58
#include "exec/operator/mock_operator.h"
59
#include "exec/operator/mock_scan_operator.h"
60
#include "exec/operator/multi_cast_data_stream_sink.h"
61
#include "exec/operator/multi_cast_data_stream_source.h"
62
#include "exec/operator/nested_loop_join_build_operator.h"
63
#include "exec/operator/nested_loop_join_probe_operator.h"
64
#include "exec/operator/olap_scan_operator.h"
65
#include "exec/operator/olap_table_sink_operator.h"
66
#include "exec/operator/olap_table_sink_v2_operator.h"
67
#include "exec/operator/partition_sort_sink_operator.h"
68
#include "exec/operator/partition_sort_source_operator.h"
69
#include "exec/operator/partitioned_aggregation_sink_operator.h"
70
#include "exec/operator/partitioned_aggregation_source_operator.h"
71
#include "exec/operator/partitioned_hash_join_probe_operator.h"
72
#include "exec/operator/partitioned_hash_join_sink_operator.h"
73
#include "exec/operator/rec_cte_anchor_sink_operator.h"
74
#include "exec/operator/rec_cte_scan_operator.h"
75
#include "exec/operator/rec_cte_sink_operator.h"
76
#include "exec/operator/rec_cte_source_operator.h"
77
#include "exec/operator/repeat_operator.h"
78
#include "exec/operator/result_file_sink_operator.h"
79
#include "exec/operator/result_sink_operator.h"
80
#include "exec/operator/schema_scan_operator.h"
81
#include "exec/operator/select_operator.h"
82
#include "exec/operator/set_probe_sink_operator.h"
83
#include "exec/operator/set_sink_operator.h"
84
#include "exec/operator/set_source_operator.h"
85
#include "exec/operator/sort_sink_operator.h"
86
#include "exec/operator/sort_source_operator.h"
87
#include "exec/operator/spill_iceberg_table_sink_operator.h"
88
#include "exec/operator/spill_sort_sink_operator.h"
89
#include "exec/operator/spill_sort_source_operator.h"
90
#include "exec/operator/streaming_aggregation_operator.h"
91
#include "exec/operator/table_function_operator.h"
92
#include "exec/operator/tvf_table_sink_operator.h"
93
#include "exec/operator/union_sink_operator.h"
94
#include "exec/operator/union_source_operator.h"
95
#include "exec/pipeline/dependency.h"
96
#include "exec/pipeline/pipeline.h"
97
#include "exprs/vexpr.h"
98
#include "exprs/vexpr_context.h"
99
#include "runtime/runtime_profile.h"
100
#include "runtime/runtime_profile_counter_names.h"
101
#include "util/debug_util.h"
102
#include "util/string_util.h"
103
104
namespace doris {
105
class RowDescriptor;
106
class RuntimeState;
107
} // namespace doris
108
109
namespace doris {
110
111
0
Status OperatorBase::close(RuntimeState* state) {
112
0
    if (_is_closed) {
113
0
        return Status::OK();
114
0
    }
115
0
    _is_closed = true;
116
0
    return Status::OK();
117
0
}
118
119
template <typename SharedStateArg>
120
59.7k
std::string PipelineXLocalState<SharedStateArg>::name_suffix() const {
121
59.7k
    if (_parent->nereids_id() == -1) {
122
17.5k
        return fmt::format("(id={})", _parent->node_id());
123
42.1k
    } else {
124
42.1k
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
125
42.1k
    }
126
59.7k
}
_ZNK5doris19PipelineXLocalStateINS_19HashJoinSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
120
25.2k
std::string PipelineXLocalState<SharedStateArg>::name_suffix() const {
121
25.2k
    if (_parent->nereids_id() == -1) {
122
0
        return fmt::format("(id={})", _parent->node_id());
123
25.2k
    } else {
124
25.2k
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
125
25.2k
    }
126
25.2k
}
_ZNK5doris19PipelineXLocalStateINS_30PartitionedHashJoinSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
120
1
std::string PipelineXLocalState<SharedStateArg>::name_suffix() const {
121
1
    if (_parent->nereids_id() == -1) {
122
1
        return fmt::format("(id={})", _parent->node_id());
123
1
    } else {
124
0
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
125
0
    }
126
1
}
_ZNK5doris19PipelineXLocalStateINS_15SortSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
120
8.63k
std::string PipelineXLocalState<SharedStateArg>::name_suffix() const {
121
8.63k
    if (_parent->nereids_id() == -1) {
122
12
        return fmt::format("(id={})", _parent->node_id());
123
8.61k
    } else {
124
8.61k
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
125
8.61k
    }
126
8.63k
}
_ZNK5doris19PipelineXLocalStateINS_20SpillSortSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
120
13
std::string PipelineXLocalState<SharedStateArg>::name_suffix() const {
121
13
    if (_parent->nereids_id() == -1) {
122
0
        return fmt::format("(id={})", _parent->node_id());
123
13
    } else {
124
13
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
125
13
    }
126
13
}
_ZNK5doris19PipelineXLocalStateINS_25NestedLoopJoinSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
120
275
std::string PipelineXLocalState<SharedStateArg>::name_suffix() const {
121
275
    if (_parent->nereids_id() == -1) {
122
0
        return fmt::format("(id={})", _parent->node_id());
123
275
    } else {
124
275
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
125
275
    }
126
275
}
_ZNK5doris19PipelineXLocalStateINS_19AnalyticSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
120
636
std::string PipelineXLocalState<SharedStateArg>::name_suffix() const {
121
636
    if (_parent->nereids_id() == -1) {
122
12
        return fmt::format("(id={})", _parent->node_id());
123
624
    } else {
124
624
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
125
624
    }
126
636
}
_ZNK5doris19PipelineXLocalStateINS_14AggSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
120
3.58k
std::string PipelineXLocalState<SharedStateArg>::name_suffix() const {
121
3.58k
    if (_parent->nereids_id() == -1) {
122
29
        return fmt::format("(id={})", _parent->node_id());
123
3.55k
    } else {
124
3.55k
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
125
3.55k
    }
126
3.58k
}
_ZNK5doris19PipelineXLocalStateINS_22BucketedAggSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
120
6
std::string PipelineXLocalState<SharedStateArg>::name_suffix() const {
121
6
    if (_parent->nereids_id() == -1) {
122
0
        return fmt::format("(id={})", _parent->node_id());
123
6
    } else {
124
6
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
125
6
    }
126
6
}
_ZNK5doris19PipelineXLocalStateINS_25PartitionedAggSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
120
28
std::string PipelineXLocalState<SharedStateArg>::name_suffix() const {
121
28
    if (_parent->nereids_id() == -1) {
122
0
        return fmt::format("(id={})", _parent->node_id());
123
28
    } else {
124
28
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
125
28
    }
126
28
}
_ZNK5doris19PipelineXLocalStateINS_15FakeSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
120
6.11k
std::string PipelineXLocalState<SharedStateArg>::name_suffix() const {
121
6.11k
    if (_parent->nereids_id() == -1) {
122
5.08k
        return fmt::format("(id={})", _parent->node_id());
123
5.08k
    } else {
124
1.02k
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
125
1.02k
    }
126
6.11k
}
_ZNK5doris19PipelineXLocalStateINS_16UnionSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
120
2.69k
std::string PipelineXLocalState<SharedStateArg>::name_suffix() const {
121
2.69k
    if (_parent->nereids_id() == -1) {
122
2
        return fmt::format("(id={})", _parent->node_id());
123
2.69k
    } else {
124
2.69k
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
125
2.69k
    }
126
2.69k
}
_ZNK5doris19PipelineXLocalStateINS_20DataQueueSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
120
12
std::string PipelineXLocalState<SharedStateArg>::name_suffix() const {
121
12
    if (_parent->nereids_id() == -1) {
122
12
        return fmt::format("(id={})", _parent->node_id());
123
12
    } else {
124
0
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
125
0
    }
126
12
}
_ZNK5doris19PipelineXLocalStateINS_20MultiCastSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
120
202
std::string PipelineXLocalState<SharedStateArg>::name_suffix() const {
121
202
    if (_parent->nereids_id() == -1) {
122
202
        return fmt::format("(id={})", _parent->node_id());
123
202
    } else {
124
0
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
125
0
    }
126
202
}
_ZNK5doris19PipelineXLocalStateINS_28PartitionSortNodeSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
120
112
std::string PipelineXLocalState<SharedStateArg>::name_suffix() const {
121
112
    if (_parent->nereids_id() == -1) {
122
102
        return fmt::format("(id={})", _parent->node_id());
123
102
    } else {
124
10
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
125
10
    }
126
112
}
_ZNK5doris19PipelineXLocalStateINS_14SetSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
120
46
std::string PipelineXLocalState<SharedStateArg>::name_suffix() const {
121
46
    if (_parent->nereids_id() == -1) {
122
13
        return fmt::format("(id={})", _parent->node_id());
123
33
    } else {
124
33
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
125
33
    }
126
46
}
_ZNK5doris19PipelineXLocalStateINS_24LocalExchangeSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
120
12.1k
std::string PipelineXLocalState<SharedStateArg>::name_suffix() const {
121
12.1k
    if (_parent->nereids_id() == -1) {
122
12.0k
        return fmt::format("(id={})", _parent->node_id());
123
12.0k
    } else {
124
15
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
125
15
    }
126
12.1k
}
Unexecuted instantiation: _ZNK5doris19PipelineXLocalStateINS_16BasicSharedStateEE11name_suffixB5cxx11Ev
Unexecuted instantiation: _ZNK5doris19PipelineXLocalStateINS_17RecCTESharedStateEE11name_suffixB5cxx11Ev
127
128
template <typename SharedStateArg>
129
104k
std::string PipelineXSinkLocalState<SharedStateArg>::name_suffix() {
130
104k
    if (_parent->nereids_id() == -1) {
131
17.3k
        return fmt::format("(id={})", _parent->node_id());
132
86.7k
    } else {
133
86.7k
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
134
86.7k
    }
135
104k
}
_ZN5doris23PipelineXSinkLocalStateINS_19HashJoinSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
129
73.3k
std::string PipelineXSinkLocalState<SharedStateArg>::name_suffix() {
130
73.3k
    if (_parent->nereids_id() == -1) {
131
0
        return fmt::format("(id={})", _parent->node_id());
132
73.3k
    } else {
133
73.3k
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
134
73.3k
    }
135
73.3k
}
_ZN5doris23PipelineXSinkLocalStateINS_30PartitionedHashJoinSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
129
2
std::string PipelineXSinkLocalState<SharedStateArg>::name_suffix() {
130
2
    if (_parent->nereids_id() == -1) {
131
1
        return fmt::format("(id={})", _parent->node_id());
132
1
    } else {
133
1
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
134
1
    }
135
2
}
_ZN5doris23PipelineXSinkLocalStateINS_15SortSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
129
8.70k
std::string PipelineXSinkLocalState<SharedStateArg>::name_suffix() {
130
8.70k
    if (_parent->nereids_id() == -1) {
131
9
        return fmt::format("(id={})", _parent->node_id());
132
8.69k
    } else {
133
8.69k
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
134
8.69k
    }
135
8.70k
}
_ZN5doris23PipelineXSinkLocalStateINS_20SpillSortSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
129
20
std::string PipelineXSinkLocalState<SharedStateArg>::name_suffix() {
130
20
    if (_parent->nereids_id() == -1) {
131
0
        return fmt::format("(id={})", _parent->node_id());
132
20
    } else {
133
20
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
134
20
    }
135
20
}
_ZN5doris23PipelineXSinkLocalStateINS_25NestedLoopJoinSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
129
281
std::string PipelineXSinkLocalState<SharedStateArg>::name_suffix() {
130
281
    if (_parent->nereids_id() == -1) {
131
0
        return fmt::format("(id={})", _parent->node_id());
132
281
    } else {
133
281
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
134
281
    }
135
281
}
_ZN5doris23PipelineXSinkLocalStateINS_19AnalyticSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
129
636
std::string PipelineXSinkLocalState<SharedStateArg>::name_suffix() {
130
636
    if (_parent->nereids_id() == -1) {
131
12
        return fmt::format("(id={})", _parent->node_id());
132
624
    } else {
133
624
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
134
624
    }
135
636
}
_ZN5doris23PipelineXSinkLocalStateINS_14AggSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
129
3.59k
std::string PipelineXSinkLocalState<SharedStateArg>::name_suffix() {
130
3.59k
    if (_parent->nereids_id() == -1) {
131
29
        return fmt::format("(id={})", _parent->node_id());
132
3.56k
    } else {
133
3.56k
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
134
3.56k
    }
135
3.59k
}
_ZN5doris23PipelineXSinkLocalStateINS_22BucketedAggSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
129
6
std::string PipelineXSinkLocalState<SharedStateArg>::name_suffix() {
130
6
    if (_parent->nereids_id() == -1) {
131
0
        return fmt::format("(id={})", _parent->node_id());
132
6
    } else {
133
6
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
134
6
    }
135
6
}
_ZN5doris23PipelineXSinkLocalStateINS_25PartitionedAggSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
129
38
std::string PipelineXSinkLocalState<SharedStateArg>::name_suffix() {
130
38
    if (_parent->nereids_id() == -1) {
131
0
        return fmt::format("(id={})", _parent->node_id());
132
38
    } else {
133
38
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
134
38
    }
135
38
}
Unexecuted instantiation: _ZN5doris23PipelineXSinkLocalStateINS_15FakeSharedStateEE11name_suffixB5cxx11Ev
_ZN5doris23PipelineXSinkLocalStateINS_16UnionSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
129
244
std::string PipelineXSinkLocalState<SharedStateArg>::name_suffix() {
130
244
    if (_parent->nereids_id() == -1) {
131
3
        return fmt::format("(id={})", _parent->node_id());
132
241
    } else {
133
241
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
134
241
    }
135
244
}
_ZN5doris23PipelineXSinkLocalStateINS_28PartitionSortNodeSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
129
112
std::string PipelineXSinkLocalState<SharedStateArg>::name_suffix() {
130
112
    if (_parent->nereids_id() == -1) {
131
102
        return fmt::format("(id={})", _parent->node_id());
132
102
    } else {
133
10
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
134
10
    }
135
112
}
Unexecuted instantiation: _ZN5doris23PipelineXSinkLocalStateINS_20MultiCastSharedStateEE11name_suffixB5cxx11Ev
_ZN5doris23PipelineXSinkLocalStateINS_14SetSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
129
95
std::string PipelineXSinkLocalState<SharedStateArg>::name_suffix() {
130
95
    if (_parent->nereids_id() == -1) {
131
95
        return fmt::format("(id={})", _parent->node_id());
132
95
    } else {
133
0
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
134
0
    }
135
95
}
_ZN5doris23PipelineXSinkLocalStateINS_24LocalExchangeSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
129
5.82k
std::string PipelineXSinkLocalState<SharedStateArg>::name_suffix() {
130
5.82k
    if (_parent->nereids_id() == -1) {
131
5.82k
        return fmt::format("(id={})", _parent->node_id());
132
5.82k
    } else {
133
1
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
134
1
    }
135
5.82k
}
_ZN5doris23PipelineXSinkLocalStateINS_16BasicSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
129
11.3k
std::string PipelineXSinkLocalState<SharedStateArg>::name_suffix() {
130
11.3k
    if (_parent->nereids_id() == -1) {
131
11.2k
        return fmt::format("(id={})", _parent->node_id());
132
11.2k
    } else {
133
8
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
134
8
    }
135
11.3k
}
_ZN5doris23PipelineXSinkLocalStateINS_20DataQueueSharedStateEE11name_suffixB5cxx11Ev
Line
Count
Source
129
11
std::string PipelineXSinkLocalState<SharedStateArg>::name_suffix() {
130
11
    if (_parent->nereids_id() == -1) {
131
11
        return fmt::format("(id={})", _parent->node_id());
132
11
    } else {
133
0
        return fmt::format("(nereids_id={}, id={})", _parent->nereids_id(), _parent->node_id());
134
0
    }
135
11
}
Unexecuted instantiation: _ZN5doris23PipelineXSinkLocalStateINS_17RecCTESharedStateEE11name_suffixB5cxx11Ev
136
137
template <typename SharedStateArg>
138
24.2k
Status PipelineXSinkLocalState<SharedStateArg>::terminate(RuntimeState* state) {
139
24.2k
    if (_terminated) {
140
0
        return Status::OK();
141
0
    }
142
24.2k
    _terminated = true;
143
24.2k
    return Status::OK();
144
24.2k
}
_ZN5doris23PipelineXSinkLocalStateINS_19HashJoinSharedStateEE9terminateEPNS_12RuntimeStateE
Line
Count
Source
138
24.0k
Status PipelineXSinkLocalState<SharedStateArg>::terminate(RuntimeState* state) {
139
24.0k
    if (_terminated) {
140
0
        return Status::OK();
141
0
    }
142
24.0k
    _terminated = true;
143
24.0k
    return Status::OK();
144
24.0k
}
Unexecuted instantiation: _ZN5doris23PipelineXSinkLocalStateINS_30PartitionedHashJoinSharedStateEE9terminateEPNS_12RuntimeStateE
_ZN5doris23PipelineXSinkLocalStateINS_15SortSharedStateEE9terminateEPNS_12RuntimeStateE
Line
Count
Source
138
68
Status PipelineXSinkLocalState<SharedStateArg>::terminate(RuntimeState* state) {
139
68
    if (_terminated) {
140
0
        return Status::OK();
141
0
    }
142
68
    _terminated = true;
143
68
    return Status::OK();
144
68
}
Unexecuted instantiation: _ZN5doris23PipelineXSinkLocalStateINS_20SpillSortSharedStateEE9terminateEPNS_12RuntimeStateE
Unexecuted instantiation: _ZN5doris23PipelineXSinkLocalStateINS_25NestedLoopJoinSharedStateEE9terminateEPNS_12RuntimeStateE
_ZN5doris23PipelineXSinkLocalStateINS_19AnalyticSharedStateEE9terminateEPNS_12RuntimeStateE
Line
Count
Source
138
2
Status PipelineXSinkLocalState<SharedStateArg>::terminate(RuntimeState* state) {
139
2
    if (_terminated) {
140
0
        return Status::OK();
141
0
    }
142
2
    _terminated = true;
143
2
    return Status::OK();
144
2
}
_ZN5doris23PipelineXSinkLocalStateINS_14AggSharedStateEE9terminateEPNS_12RuntimeStateE
Line
Count
Source
138
53
Status PipelineXSinkLocalState<SharedStateArg>::terminate(RuntimeState* state) {
139
53
    if (_terminated) {
140
0
        return Status::OK();
141
0
    }
142
53
    _terminated = true;
143
53
    return Status::OK();
144
53
}
Unexecuted instantiation: _ZN5doris23PipelineXSinkLocalStateINS_22BucketedAggSharedStateEE9terminateEPNS_12RuntimeStateE
Unexecuted instantiation: _ZN5doris23PipelineXSinkLocalStateINS_25PartitionedAggSharedStateEE9terminateEPNS_12RuntimeStateE
_ZN5doris23PipelineXSinkLocalStateINS_15FakeSharedStateEE9terminateEPNS_12RuntimeStateE
Line
Count
Source
138
39
Status PipelineXSinkLocalState<SharedStateArg>::terminate(RuntimeState* state) {
139
39
    if (_terminated) {
140
0
        return Status::OK();
141
0
    }
142
39
    _terminated = true;
143
39
    return Status::OK();
144
39
}
Unexecuted instantiation: _ZN5doris23PipelineXSinkLocalStateINS_16UnionSharedStateEE9terminateEPNS_12RuntimeStateE
Unexecuted instantiation: _ZN5doris23PipelineXSinkLocalStateINS_28PartitionSortNodeSharedStateEE9terminateEPNS_12RuntimeStateE
_ZN5doris23PipelineXSinkLocalStateINS_20MultiCastSharedStateEE9terminateEPNS_12RuntimeStateE
Line
Count
Source
138
4
Status PipelineXSinkLocalState<SharedStateArg>::terminate(RuntimeState* state) {
139
4
    if (_terminated) {
140
0
        return Status::OK();
141
0
    }
142
4
    _terminated = true;
143
4
    return Status::OK();
144
4
}
Unexecuted instantiation: _ZN5doris23PipelineXSinkLocalStateINS_14SetSharedStateEE9terminateEPNS_12RuntimeStateE
_ZN5doris23PipelineXSinkLocalStateINS_24LocalExchangeSharedStateEE9terminateEPNS_12RuntimeStateE
Line
Count
Source
138
29
Status PipelineXSinkLocalState<SharedStateArg>::terminate(RuntimeState* state) {
139
29
    if (_terminated) {
140
0
        return Status::OK();
141
0
    }
142
29
    _terminated = true;
143
29
    return Status::OK();
144
29
}
Unexecuted instantiation: _ZN5doris23PipelineXSinkLocalStateINS_16BasicSharedStateEE9terminateEPNS_12RuntimeStateE
Unexecuted instantiation: _ZN5doris23PipelineXSinkLocalStateINS_20DataQueueSharedStateEE9terminateEPNS_12RuntimeStateE
Unexecuted instantiation: _ZN5doris23PipelineXSinkLocalStateINS_17RecCTESharedStateEE9terminateEPNS_12RuntimeStateE
145
146
13.1k
DataDistribution OperatorBase::required_data_distribution(RuntimeState* /*state*/) const {
147
13.1k
    return _child && _child->is_serial_operator() && !is_source()
148
13.1k
                   ? DataDistribution(TLocalPartitionType::PASSTHROUGH)
149
13.1k
                   : DataDistribution(TLocalPartitionType::NOOP);
150
13.1k
}
151
152
331
bool OperatorBase::child_breaks_local_key_distribution(RuntimeState* state) const {
153
331
    if (!_child) {
154
266
        return false;
155
266
    }
156
65
    if (_child->is_serial_operator()) {
157
10
        return true;
158
10
    }
159
55
    const auto child_distribution = _child->required_data_distribution(state);
160
55
    return child_distribution.need_local_exchange() &&
161
56
           !is_shuffled_exchange(child_distribution.distribution_type);
162
65
}
163
164
template <typename SharedStateArg>
165
14.3k
std::string PipelineXLocalState<SharedStateArg>::debug_string(int indentation_level) const {
166
14.3k
    fmt::memory_buffer debug_string_buffer;
167
14.3k
    fmt::format_to(debug_string_buffer, "{}", _parent->debug_string(indentation_level));
168
14.3k
    return fmt::to_string(debug_string_buffer);
169
14.3k
}
Unexecuted instantiation: _ZNK5doris19PipelineXLocalStateINS_19HashJoinSharedStateEE12debug_stringB5cxx11Ei
_ZNK5doris19PipelineXLocalStateINS_30PartitionedHashJoinSharedStateEE12debug_stringB5cxx11Ei
Line
Count
Source
165
3
std::string PipelineXLocalState<SharedStateArg>::debug_string(int indentation_level) const {
166
3
    fmt::memory_buffer debug_string_buffer;
167
3
    fmt::format_to(debug_string_buffer, "{}", _parent->debug_string(indentation_level));
168
3
    return fmt::to_string(debug_string_buffer);
169
3
}
Unexecuted instantiation: _ZNK5doris19PipelineXLocalStateINS_15SortSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris19PipelineXLocalStateINS_20SpillSortSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris19PipelineXLocalStateINS_25NestedLoopJoinSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris19PipelineXLocalStateINS_19AnalyticSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris19PipelineXLocalStateINS_14AggSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris19PipelineXLocalStateINS_22BucketedAggSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris19PipelineXLocalStateINS_25PartitionedAggSharedStateEE12debug_stringB5cxx11Ei
_ZNK5doris19PipelineXLocalStateINS_15FakeSharedStateEE12debug_stringB5cxx11Ei
Line
Count
Source
165
14.3k
std::string PipelineXLocalState<SharedStateArg>::debug_string(int indentation_level) const {
166
14.3k
    fmt::memory_buffer debug_string_buffer;
167
14.3k
    fmt::format_to(debug_string_buffer, "{}", _parent->debug_string(indentation_level));
168
14.3k
    return fmt::to_string(debug_string_buffer);
169
14.3k
}
Unexecuted instantiation: _ZNK5doris19PipelineXLocalStateINS_16UnionSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris19PipelineXLocalStateINS_20DataQueueSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris19PipelineXLocalStateINS_20MultiCastSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris19PipelineXLocalStateINS_28PartitionSortNodeSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris19PipelineXLocalStateINS_14SetSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris19PipelineXLocalStateINS_24LocalExchangeSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris19PipelineXLocalStateINS_16BasicSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris19PipelineXLocalStateINS_17RecCTESharedStateEE12debug_stringB5cxx11Ei
170
171
template <typename SharedStateArg>
172
14.3k
std::string PipelineXSinkLocalState<SharedStateArg>::debug_string(int indentation_level) const {
173
14.3k
    fmt::memory_buffer debug_string_buffer;
174
14.3k
    fmt::format_to(debug_string_buffer, "{}", _parent->debug_string(indentation_level));
175
14.3k
    return fmt::to_string(debug_string_buffer);
176
14.3k
}
Unexecuted instantiation: _ZNK5doris23PipelineXSinkLocalStateINS_19HashJoinSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris23PipelineXSinkLocalStateINS_30PartitionedHashJoinSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris23PipelineXSinkLocalStateINS_15SortSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris23PipelineXSinkLocalStateINS_20SpillSortSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris23PipelineXSinkLocalStateINS_25NestedLoopJoinSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris23PipelineXSinkLocalStateINS_19AnalyticSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris23PipelineXSinkLocalStateINS_14AggSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris23PipelineXSinkLocalStateINS_22BucketedAggSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris23PipelineXSinkLocalStateINS_25PartitionedAggSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris23PipelineXSinkLocalStateINS_15FakeSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris23PipelineXSinkLocalStateINS_16UnionSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris23PipelineXSinkLocalStateINS_28PartitionSortNodeSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris23PipelineXSinkLocalStateINS_20MultiCastSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris23PipelineXSinkLocalStateINS_14SetSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris23PipelineXSinkLocalStateINS_24LocalExchangeSharedStateEE12debug_stringB5cxx11Ei
_ZNK5doris23PipelineXSinkLocalStateINS_16BasicSharedStateEE12debug_stringB5cxx11Ei
Line
Count
Source
172
14.3k
std::string PipelineXSinkLocalState<SharedStateArg>::debug_string(int indentation_level) const {
173
14.3k
    fmt::memory_buffer debug_string_buffer;
174
14.3k
    fmt::format_to(debug_string_buffer, "{}", _parent->debug_string(indentation_level));
175
14.3k
    return fmt::to_string(debug_string_buffer);
176
14.3k
}
Unexecuted instantiation: _ZNK5doris23PipelineXSinkLocalStateINS_20DataQueueSharedStateEE12debug_stringB5cxx11Ei
Unexecuted instantiation: _ZNK5doris23PipelineXSinkLocalStateINS_17RecCTESharedStateEE12debug_stringB5cxx11Ei
177
178
14.4k
std::string OperatorXBase::debug_string(int indentation_level) const {
179
14.4k
    fmt::memory_buffer debug_string_buffer;
180
14.4k
    fmt::format_to(debug_string_buffer, "{}{}: id={}, parallel_tasks={}, _is_serial_operator={}",
181
14.4k
                   std::string(indentation_level * 2, ' '), _op_name, node_id(), _parallel_tasks,
182
14.4k
                   _is_serial_operator);
183
14.4k
    return fmt::to_string(debug_string_buffer);
184
14.4k
}
185
186
14.3k
std::string OperatorXBase::debug_string(RuntimeState* state, int indentation_level) const {
187
14.3k
    return state->get_local_state(operator_id())->debug_string(indentation_level);
188
14.3k
}
189
190
44.9k
Status OperatorXBase::init(const TPlanNode& tnode, RuntimeState* state) {
191
44.9k
    std::string node_name = print_plan_node_type(tnode.node_type);
192
44.9k
    _nereids_id = tnode.nereids_id;
193
44.9k
    if (!tnode.intermediate_output_tuple_id_list.empty()) {
194
24
        if (!has_projection()) {
195
0
            return Status::InternalError("no final output tuple id");
196
0
        }
197
24
        if (tnode.intermediate_output_tuple_id_list.size() !=
198
24
            tnode.intermediate_projections_list.size()) {
199
0
            return Status::InternalError(
200
0
                    "intermediate_output_tuple_id_list size:{} not match "
201
0
                    "intermediate_projections_list size:{}",
202
0
                    tnode.intermediate_output_tuple_id_list.size(),
203
0
                    tnode.intermediate_projections_list.size());
204
0
        }
205
24
    }
206
44.9k
    auto substr = node_name.substr(0, node_name.find("_NODE"));
207
44.9k
    _op_name = substr + "_OPERATOR";
208
209
44.9k
    if (tnode.__isset.vconjunct) {
210
0
        return Status::InternalError("vconjunct is not supported yet");
211
44.9k
    } else if (tnode.__isset.conjuncts) {
212
22.0k
        for (const auto& conjunct : tnode.conjuncts) {
213
22.0k
            VExprContextSPtr context;
214
22.0k
            RETURN_IF_ERROR(VExpr::create_expr_tree(conjunct, context));
215
21.9k
            _conjuncts.emplace_back(context);
216
21.9k
        }
217
6.59k
    }
218
219
    // create the projections expr
220
44.9k
    if (tnode.__isset.projections) {
221
33.7k
        RETURN_IF_ERROR(VExpr::create_expr_trees(tnode.projections, _projection->projections));
222
33.7k
    }
223
44.8k
    if (!tnode.intermediate_projections_list.empty()) {
224
24
        DCHECK(has_projection()) << "no final projections";
225
24
        _projection->intermediate_projections.reserve(tnode.intermediate_projections_list.size());
226
63
        for (const auto& tnode_projections : tnode.intermediate_projections_list) {
227
63
            VExprContextSPtrs projections;
228
63
            RETURN_IF_ERROR(VExpr::create_expr_trees(tnode_projections, projections));
229
63
            _projection->intermediate_projections.push_back(projections);
230
63
        }
231
24
    }
232
44.8k
    return Status::OK();
233
44.8k
}
234
235
69.0k
Status OperatorXBase::prepare(RuntimeState* state) {
236
69.0k
    for (auto& conjunct : _conjuncts) {
237
21.9k
        RETURN_IF_ERROR(conjunct->prepare(state, operator_row_desc_before_projection()));
238
21.9k
    }
239
69.0k
    if (state->enable_adjust_conjunct_order_by_cost()) {
240
30.3k
        std::ranges::stable_sort(_conjuncts, [](const auto& a, const auto& b) {
241
30.3k
            return a->execute_cost() < b->execute_cost();
242
30.3k
        });
243
20.6k
    };
244
245
69.0k
    if (has_projection()) {
246
33.7k
        auto& projection = *_projection;
247
33.7k
        for (int i = 0; i < projection.intermediate_projections.size(); i++) {
248
63
            const auto& input_row_desc =
249
63
                    i == 0 ? operator_row_desc_before_projection()
250
63
                           : projection.intermediate_output_row_descriptors[i - 1];
251
63
            RETURN_IF_ERROR(
252
63
                    VExpr::prepare(projection.intermediate_projections[i], state, input_row_desc));
253
63
        }
254
33.7k
        const auto& final_projection_input_row_desc =
255
33.7k
                projection.intermediate_output_row_descriptors.empty()
256
33.7k
                        ? operator_row_desc_before_projection()
257
33.7k
                        : projection.intermediate_output_row_descriptors.back();
258
33.7k
        RETURN_IF_ERROR(
259
33.7k
                VExpr::prepare(projection.projections, state, final_projection_input_row_desc));
260
33.7k
        RETURN_IF_ERROR(VExpr::check_expr_output_type(projection.projections,
261
33.7k
                                                      projection.output_row_descriptor));
262
33.7k
    }
263
264
69.0k
    for (auto& conjunct : _conjuncts) {
265
21.9k
        RETURN_IF_ERROR(conjunct->open(state));
266
21.9k
    }
267
69.0k
    if (has_projection()) {
268
33.7k
        RETURN_IF_ERROR(VExpr::open(_projection->projections, state));
269
33.7k
        for (auto& projections : _projection->intermediate_projections) {
270
63
            RETURN_IF_ERROR(VExpr::open(projections, state));
271
63
        }
272
33.7k
    }
273
69.0k
    if (_child && !is_source()) {
274
25.0k
        RETURN_IF_ERROR(_child->prepare(state));
275
25.0k
    }
276
277
69.0k
    if (VExpr::contains_blockable_function(_conjuncts) ||
278
69.0k
        (has_projection() && VExpr::contains_blockable_function(_projection->projections))) {
279
0
        _blockable = true;
280
0
    }
281
282
69.0k
    return Status::OK();
283
69.0k
}
284
285
256
Status OperatorXBase::terminate(RuntimeState* state) {
286
256
    if (_child && !is_source()) {
287
55
        RETURN_IF_ERROR(_child->terminate(state));
288
55
    }
289
256
    auto result = state->get_local_state_result(operator_id());
290
256
    if (!result) {
291
0
        return result.error();
292
0
    }
293
256
    return result.value()->terminate(state);
294
256
}
295
296
127k
Status OperatorXBase::close(RuntimeState* state) {
297
127k
    if (_child && !is_source()) {
298
31.6k
        RETURN_IF_ERROR(_child->close(state));
299
31.6k
    }
300
127k
    auto result = state->get_local_state_result(operator_id());
301
127k
    if (!result) {
302
0
        return result.error();
303
0
    }
304
127k
    return result.value()->close(state);
305
127k
}
306
307
24.4k
void PipelineXLocalStateBase::clear_origin_block() {
308
24.4k
    _origin_block.clear_column_data(
309
24.4k
            _parent->operator_row_desc_before_projection().num_materialized_slots());
310
24.4k
}
311
312
10.6k
Status PipelineXLocalStateBase::filter_block(const VExprContextSPtrs& expr_contexts, Block* block) {
313
10.6k
    RETURN_IF_ERROR(VExprContext::filter_block(expr_contexts, block, block->columns()));
314
315
10.6k
    _estimate_memory_usage += VExprContext::get_memory_usage(expr_contexts);
316
10.6k
    return Status::OK();
317
10.6k
}
318
319
0
bool PipelineXLocalStateBase::is_blockable() const {
320
0
    return std::any_of(_projections.begin(), _projections.end(),
321
0
                       [&](VExprContextSPtr expr) -> bool { return expr->is_blockable(); });
322
0
}
323
324
Status OperatorXBase::do_projections(RuntimeState* state, Block* origin_block,
325
24.4k
                                     Block* output_block) const {
326
24.4k
    auto* local_state = state->get_local_state(operator_id());
327
24.4k
    SCOPED_TIMER(local_state->exec_time_counter());
328
24.4k
    SCOPED_TIMER(local_state->_projection_timer);
329
24.4k
    const size_t rows = origin_block->rows();
330
24.4k
    if (rows == 0) {
331
17.7k
        return Status::OK();
332
17.7k
    }
333
6.68k
    SCOPED_PEAK_MEM(&local_state->_estimate_memory_usage);
334
335
6.68k
    {
336
6.68k
        Block input_block = *origin_block;
337
338
6.68k
        ColumnsWithTypeAndName new_columns;
339
6.68k
        for (const auto& projections : local_state->_intermediate_projections) {
340
8
            if (projections.empty()) {
341
0
                return Status::InternalError("meet empty intermediate projection, node id: {}",
342
0
                                             node_id());
343
0
            }
344
8
            new_columns.resize(projections.size());
345
59
            for (int i = 0; i < projections.size(); i++) {
346
51
                RETURN_IF_ERROR(projections[i]->execute(&input_block, new_columns[i]));
347
51
                if (new_columns[i].column->size() != rows) {
348
0
                    return Status::InternalError(
349
0
                            "intermediate projection result column size {} not equal input rows "
350
0
                            "{}, expr: {}",
351
0
                            new_columns[i].column->size(), rows,
352
0
                            projections[i]->root()->debug_string());
353
0
                }
354
51
            }
355
8
            Block tmp_block {new_columns};
356
8
            input_block.swap(tmp_block);
357
8
        }
358
359
6.68k
        if (input_block.rows() != rows) {
360
0
            return Status::InternalError(
361
0
                    "after intermediate projections input block rows {} not equal origin rows {}, "
362
0
                    "input_block: {}",
363
0
                    input_block.rows(), rows, input_block.dump_structure());
364
0
        }
365
366
6.68k
        auto scoped_mutable_block = VectorizedUtils::build_scoped_mutable_mem_reuse_block(
367
6.68k
                output_block, _projection->output_row_descriptor);
368
6.68k
        auto& mutable_columns = scoped_mutable_block.mutable_columns();
369
6.68k
        DCHECK_EQ(mutable_columns.size(), local_state->_projections.size()) << debug_string();
370
6.68k
        Columns shared_columns(mutable_columns.size());
371
372
42.6k
        for (int i = 0; i < mutable_columns.size(); ++i) {
373
35.9k
            ColumnPtr column_ptr;
374
35.9k
            RETURN_IF_ERROR(local_state->_projections[i]->execute(&input_block, column_ptr));
375
35.9k
            if (column_ptr->size() != rows) {
376
0
                return Status::InternalError(
377
0
                        "projection result column size {} not equal input rows {}, expr: {}",
378
0
                        column_ptr->size(), rows,
379
0
                        local_state->_projections[i]->root()->debug_string());
380
0
            }
381
35.9k
            column_ptr = column_ptr->convert_to_full_column_if_const();
382
35.9k
            if (is_column_nullable(*mutable_columns[i]) && !is_column_nullable(*column_ptr)) {
383
0
                column_ptr = make_nullable(column_ptr, false);
384
0
            }
385
35.9k
            if (column_ptr->is_exclusive()) {
386
5.86k
                mutable_columns[i] = IColumn::mutate(std::move(column_ptr));
387
30.1k
            } else {
388
30.1k
                shared_columns[i] = std::move(column_ptr);
389
30.1k
            }
390
35.9k
        }
391
392
6.68k
        scoped_mutable_block.restore();
393
42.6k
        for (int i = 0; i < shared_columns.size(); ++i) {
394
35.9k
            if (shared_columns[i]) {
395
30.1k
                output_block->replace_by_position(i, std::move(shared_columns[i]));
396
30.1k
            }
397
35.9k
        }
398
6.68k
    }
399
400
0
    origin_block->clear_column_data(
401
6.68k
            local_state->_parent->operator_row_desc_before_projection().num_materialized_slots());
402
6.68k
    DCHECK_EQ(output_block->rows(), rows);
403
404
6.68k
    return Status::OK();
405
6.68k
}
406
407
1.27M
Status OperatorXBase::get_block_after_projects(RuntimeState* state, Block* block, bool* eos) {
408
1.27M
    DBUG_EXECUTE_IF("Pipeline::return_empty_block", {
409
1.27M
        if (this->_op_name == "AGGREGATION_OPERATOR" || this->_op_name == "HASH_JOIN_OPERATOR" ||
410
1.27M
            this->_op_name == "PARTITIONED_AGGREGATION_OPERATOR" ||
411
1.27M
            this->_op_name == "PARTITIONED_HASH_JOIN_OPERATOR" ||
412
1.27M
            this->_op_name == "CROSS_JOIN_OPERATOR" || this->_op_name == "SORT_OPERATOR") {
413
1.27M
            if (_debug_point_count++ % 2 == 0) {
414
1.27M
                return Status::OK();
415
1.27M
            }
416
1.27M
        }
417
1.27M
    });
418
419
1.27M
    Status status;
420
1.27M
    auto* local_state = state->get_local_state(operator_id());
421
1.27M
    Defer defer([&]() {
422
1.27M
        if (status.ok()) {
423
1.27M
            local_state->update_output_block_counters(*block);
424
1.27M
        }
425
1.27M
    });
426
1.27M
    if (has_projection()) {
427
24.4k
        local_state->clear_origin_block();
428
24.4k
        status = get_block(state, &local_state->_origin_block, eos);
429
24.4k
        if (UNLIKELY(!status.ok())) {
430
2
            return status;
431
2
        }
432
24.4k
        status = do_projections(state, &local_state->_origin_block, block);
433
24.4k
        return status;
434
24.4k
    }
435
1.24M
    status = get_block(state, block, eos);
436
1.24M
    RETURN_IF_ERROR(block->check_type_and_column());
437
1.24M
    return status;
438
1.24M
}
439
440
124k
void PipelineXLocalStateBase::reached_limit(Block* block, bool* eos) {
441
124k
    if (_parent->_limit != -1 and _num_rows_returned + block->rows() >= _parent->_limit) {
442
375
        block->set_num_rows(_parent->_limit - _num_rows_returned);
443
375
        *eos = true;
444
375
    }
445
446
124k
    DBUG_EXECUTE_IF("Pipeline::reached_limit_early", {
447
124k
        auto op_name = to_lower(_parent->_op_name);
448
124k
        auto arg_op_name = dp->param<std::string>("op_name");
449
124k
        arg_op_name = to_lower(arg_op_name);
450
451
124k
        if (op_name == arg_op_name) {
452
124k
            *eos = true;
453
124k
        }
454
124k
    });
455
456
124k
    if (auto rows = block->rows()) {
457
40.4k
        _num_rows_returned += rows;
458
40.4k
        _state->get_query_ctx()->resource_ctx()->io_context()->update_process_rows(rows);
459
40.4k
    }
460
124k
}
461
462
24.2k
Status DataSinkOperatorXBase::terminate(RuntimeState* state) {
463
24.2k
    auto result = state->get_sink_local_state_result();
464
24.2k
    if (!result) {
465
0
        return result.error();
466
0
    }
467
24.2k
    return result.value()->terminate(state);
468
24.2k
}
469
470
14.3k
std::string DataSinkOperatorXBase::debug_string(int indentation_level) const {
471
14.3k
    fmt::memory_buffer debug_string_buffer;
472
473
14.3k
    fmt::format_to(debug_string_buffer, "{}{}: id={}, _is_serial_operator={}",
474
14.3k
                   std::string(indentation_level * 2, ' '), _name, node_id(), _is_serial_operator);
475
14.3k
    return fmt::to_string(debug_string_buffer);
476
14.3k
}
477
478
14.3k
std::string DataSinkOperatorXBase::debug_string(RuntimeState* state, int indentation_level) const {
479
14.3k
    return state->get_sink_local_state()->debug_string(indentation_level);
480
14.3k
}
481
482
13.7k
Status DataSinkOperatorXBase::init(const TDataSink& tsink) {
483
13.7k
    std::string op_name = "UNKNOWN_SINK";
484
13.7k
    auto it = _TDataSinkType_VALUES_TO_NAMES.find(tsink.type);
485
486
13.7k
    if (it != _TDataSinkType_VALUES_TO_NAMES.end()) {
487
13.7k
        op_name = it->second;
488
13.7k
    }
489
13.7k
    _name = op_name + "_OPERATOR";
490
13.7k
    return Status::OK();
491
13.7k
}
492
493
78.3k
Status DataSinkOperatorXBase::init(const TPlanNode& tnode, RuntimeState* state) {
494
78.3k
    std::string op_name = print_plan_node_type(tnode.node_type);
495
78.3k
    _nereids_id = tnode.nereids_id;
496
78.3k
    auto substr = op_name.substr(0, op_name.find("_NODE"));
497
78.3k
    _name = substr + "_SINK_OPERATOR";
498
78.3k
    return Status::OK();
499
78.3k
}
500
501
template <typename LocalStateType>
502
Status DataSinkOperatorX<LocalStateType>::setup_local_state(RuntimeState* state,
503
117k
                                                            LocalSinkStateInfo& info) {
504
117k
    auto local_state = LocalStateType::create_unique(this, state);
505
117k
    RETURN_IF_ERROR(local_state->init(state, info));
506
117k
    state->emplace_sink_local_state(operator_id(), std::move(local_state));
507
117k
    return Status::OK();
508
117k
}
_ZN5doris17DataSinkOperatorXINS_27HashJoinBuildSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
503
73.3k
                                                            LocalSinkStateInfo& info) {
504
73.3k
    auto local_state = LocalStateType::create_unique(this, state);
505
73.3k
    RETURN_IF_ERROR(local_state->init(state, info));
506
73.3k
    state->emplace_sink_local_state(operator_id(), std::move(local_state));
507
73.3k
    return Status::OK();
508
73.3k
}
_ZN5doris17DataSinkOperatorXINS_20ResultSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
503
8.01k
                                                            LocalSinkStateInfo& info) {
504
8.01k
    auto local_state = LocalStateType::create_unique(this, state);
505
8.01k
    RETURN_IF_ERROR(local_state->init(state, info));
506
8.01k
    state->emplace_sink_local_state(operator_id(), std::move(local_state));
507
8.01k
    return Status::OK();
508
8.01k
}
Unexecuted instantiation: _ZN5doris17DataSinkOperatorXINS_23JdbcTableSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Unexecuted instantiation: _ZN5doris17DataSinkOperatorXINS_27MemoryScratchSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Unexecuted instantiation: _ZN5doris17DataSinkOperatorXINS_24ResultFileSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
_ZN5doris17DataSinkOperatorXINS_23OlapTableSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
503
2.97k
                                                            LocalSinkStateInfo& info) {
504
2.97k
    auto local_state = LocalStateType::create_unique(this, state);
505
2.97k
    RETURN_IF_ERROR(local_state->init(state, info));
506
2.97k
    state->emplace_sink_local_state(operator_id(), std::move(local_state));
507
2.97k
    return Status::OK();
508
2.97k
}
_ZN5doris17DataSinkOperatorXINS_25OlapTableSinkV2LocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
503
296
                                                            LocalSinkStateInfo& info) {
504
296
    auto local_state = LocalStateType::create_unique(this, state);
505
296
    RETURN_IF_ERROR(local_state->init(state, info));
506
296
    state->emplace_sink_local_state(operator_id(), std::move(local_state));
507
296
    return Status::OK();
508
296
}
Unexecuted instantiation: _ZN5doris17DataSinkOperatorXINS_23HiveTableSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Unexecuted instantiation: _ZN5doris17DataSinkOperatorXINS_22TVFTableSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Unexecuted instantiation: _ZN5doris17DataSinkOperatorXINS_26IcebergTableSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Unexecuted instantiation: _ZN5doris17DataSinkOperatorXINS_31SpillIcebergTableSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Unexecuted instantiation: _ZN5doris17DataSinkOperatorXINS_27IcebergDeleteSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Unexecuted instantiation: _ZN5doris17DataSinkOperatorXINS_26IcebergMergeSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Unexecuted instantiation: _ZN5doris17DataSinkOperatorXINS_21MCTableSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
_ZN5doris17DataSinkOperatorXINS_22AnalyticSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
503
624
                                                            LocalSinkStateInfo& info) {
504
624
    auto local_state = LocalStateType::create_unique(this, state);
505
624
    RETURN_IF_ERROR(local_state->init(state, info));
506
624
    state->emplace_sink_local_state(operator_id(), std::move(local_state));
507
624
    return Status::OK();
508
624
}
Unexecuted instantiation: _ZN5doris17DataSinkOperatorXINS_23BlackholeSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
_ZN5doris17DataSinkOperatorXINS_18SortSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
503
8.69k
                                                            LocalSinkStateInfo& info) {
504
8.69k
    auto local_state = LocalStateType::create_unique(this, state);
505
8.69k
    RETURN_IF_ERROR(local_state->init(state, info));
506
8.69k
    state->emplace_sink_local_state(operator_id(), std::move(local_state));
507
8.69k
    return Status::OK();
508
8.69k
}
_ZN5doris17DataSinkOperatorXINS_23SpillSortSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
503
20
                                                            LocalSinkStateInfo& info) {
504
20
    auto local_state = LocalStateType::create_unique(this, state);
505
20
    RETURN_IF_ERROR(local_state->init(state, info));
506
20
    state->emplace_sink_local_state(operator_id(), std::move(local_state));
507
20
    return Status::OK();
508
20
}
_ZN5doris17DataSinkOperatorXINS_27LocalExchangeSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
503
5.82k
                                                            LocalSinkStateInfo& info) {
504
5.82k
    auto local_state = LocalStateType::create_unique(this, state);
505
5.82k
    RETURN_IF_ERROR(local_state->init(state, info));
506
5.82k
    state->emplace_sink_local_state(operator_id(), std::move(local_state));
507
5.82k
    return Status::OK();
508
5.82k
}
_ZN5doris17DataSinkOperatorXINS_17AggSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
503
3.56k
                                                            LocalSinkStateInfo& info) {
504
3.56k
    auto local_state = LocalStateType::create_unique(this, state);
505
3.56k
    RETURN_IF_ERROR(local_state->init(state, info));
506
3.56k
    state->emplace_sink_local_state(operator_id(), std::move(local_state));
507
3.56k
    return Status::OK();
508
3.56k
}
_ZN5doris17DataSinkOperatorXINS_25BucketedAggSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
503
6
                                                            LocalSinkStateInfo& info) {
504
6
    auto local_state = LocalStateType::create_unique(this, state);
505
6
    RETURN_IF_ERROR(local_state->init(state, info));
506
6
    state->emplace_sink_local_state(operator_id(), std::move(local_state));
507
6
    return Status::OK();
508
6
}
_ZN5doris17DataSinkOperatorXINS_28PartitionedAggSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
503
38
                                                            LocalSinkStateInfo& info) {
504
38
    auto local_state = LocalStateType::create_unique(this, state);
505
38
    RETURN_IF_ERROR(local_state->init(state, info));
506
38
    state->emplace_sink_local_state(operator_id(), std::move(local_state));
507
38
    return Status::OK();
508
38
}
_ZN5doris17DataSinkOperatorXINS_22ExchangeSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
503
13.2k
                                                            LocalSinkStateInfo& info) {
504
13.2k
    auto local_state = LocalStateType::create_unique(this, state);
505
13.2k
    RETURN_IF_ERROR(local_state->init(state, info));
506
13.2k
    state->emplace_sink_local_state(operator_id(), std::move(local_state));
507
13.2k
    return Status::OK();
508
13.2k
}
_ZN5doris17DataSinkOperatorXINS_33NestedLoopJoinBuildSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
503
282
                                                            LocalSinkStateInfo& info) {
504
282
    auto local_state = LocalStateType::create_unique(this, state);
505
282
    RETURN_IF_ERROR(local_state->init(state, info));
506
282
    state->emplace_sink_local_state(operator_id(), std::move(local_state));
507
282
    return Status::OK();
508
282
}
_ZN5doris17DataSinkOperatorXINS_19UnionSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
503
241
                                                            LocalSinkStateInfo& info) {
504
241
    auto local_state = LocalStateType::create_unique(this, state);
505
241
    RETURN_IF_ERROR(local_state->init(state, info));
506
241
    state->emplace_sink_local_state(operator_id(), std::move(local_state));
507
241
    return Status::OK();
508
241
}
_ZN5doris17DataSinkOperatorXINS_33MultiCastDataStreamSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
503
85
                                                            LocalSinkStateInfo& info) {
504
85
    auto local_state = LocalStateType::create_unique(this, state);
505
85
    RETURN_IF_ERROR(local_state->init(state, info));
506
85
    state->emplace_sink_local_state(operator_id(), std::move(local_state));
507
85
    return Status::OK();
508
85
}
_ZN5doris17DataSinkOperatorXINS_27PartitionSortSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
503
10
                                                            LocalSinkStateInfo& info) {
504
10
    auto local_state = LocalStateType::create_unique(this, state);
505
10
    RETURN_IF_ERROR(local_state->init(state, info));
506
10
    state->emplace_sink_local_state(operator_id(), std::move(local_state));
507
10
    return Status::OK();
508
10
}
_ZN5doris17DataSinkOperatorXINS_22SetProbeSinkLocalStateILb1EEEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
503
20
                                                            LocalSinkStateInfo& info) {
504
20
    auto local_state = LocalStateType::create_unique(this, state);
505
20
    RETURN_IF_ERROR(local_state->init(state, info));
506
20
    state->emplace_sink_local_state(operator_id(), std::move(local_state));
507
20
    return Status::OK();
508
20
}
_ZN5doris17DataSinkOperatorXINS_22SetProbeSinkLocalStateILb0EEEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
503
13
                                                            LocalSinkStateInfo& info) {
504
13
    auto local_state = LocalStateType::create_unique(this, state);
505
13
    RETURN_IF_ERROR(local_state->init(state, info));
506
13
    state->emplace_sink_local_state(operator_id(), std::move(local_state));
507
13
    return Status::OK();
508
13
}
_ZN5doris17DataSinkOperatorXINS_17SetSinkLocalStateILb1EEEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
503
20
                                                            LocalSinkStateInfo& info) {
504
20
    auto local_state = LocalStateType::create_unique(this, state);
505
20
    RETURN_IF_ERROR(local_state->init(state, info));
506
20
    state->emplace_sink_local_state(operator_id(), std::move(local_state));
507
20
    return Status::OK();
508
20
}
_ZN5doris17DataSinkOperatorXINS_17SetSinkLocalStateILb0EEEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
503
13
                                                            LocalSinkStateInfo& info) {
504
13
    auto local_state = LocalStateType::create_unique(this, state);
505
13
    RETURN_IF_ERROR(local_state->init(state, info));
506
13
    state->emplace_sink_local_state(operator_id(), std::move(local_state));
507
13
    return Status::OK();
508
13
}
_ZN5doris17DataSinkOperatorXINS_33PartitionedHashJoinSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
503
1
                                                            LocalSinkStateInfo& info) {
504
1
    auto local_state = LocalStateType::create_unique(this, state);
505
1
    RETURN_IF_ERROR(local_state->init(state, info));
506
1
    state->emplace_sink_local_state(operator_id(), std::move(local_state));
507
1
    return Status::OK();
508
1
}
Unexecuted instantiation: _ZN5doris17DataSinkOperatorXINS_30GroupCommitBlockSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Unexecuted instantiation: _ZN5doris17DataSinkOperatorXINS_19CacheSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
_ZN5doris17DataSinkOperatorXINS_18DictSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
503
10
                                                            LocalSinkStateInfo& info) {
504
10
    auto local_state = LocalStateType::create_unique(this, state);
505
10
    RETURN_IF_ERROR(local_state->init(state, info));
506
10
    state->emplace_sink_local_state(operator_id(), std::move(local_state));
507
10
    return Status::OK();
508
10
}
Unexecuted instantiation: _ZN5doris17DataSinkOperatorXINS_20RecCTESinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Unexecuted instantiation: _ZN5doris17DataSinkOperatorXINS_26RecCTEAnchorSinkLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
509
510
template <typename LocalStateType>
511
110k
std::shared_ptr<BasicSharedState> DataSinkOperatorX<LocalStateType>::create_shared_state() const {
512
    if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
513
0
                                 LocalExchangeSharedState>) {
514
0
        return nullptr;
515
    } else if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
516
0
                                        MultiCastSharedState>) {
517
0
        throw Exception(Status::FatalError("should not reach here!"));
518
110k
    } else {
519
110k
        auto ss = LocalStateType::SharedStateType::create_shared();
520
110k
        ss->id = operator_id();
521
110k
        for (auto& dest : dests_id()) {
522
110k
            ss->related_op_ids.insert(dest);
523
110k
        }
524
110k
        return ss;
525
110k
    }
526
110k
}
_ZNK5doris17DataSinkOperatorXINS_27HashJoinBuildSinkLocalStateEE19create_shared_stateEv
Line
Count
Source
511
72.7k
std::shared_ptr<BasicSharedState> DataSinkOperatorX<LocalStateType>::create_shared_state() const {
512
    if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
513
                                 LocalExchangeSharedState>) {
514
        return nullptr;
515
    } else if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
516
                                        MultiCastSharedState>) {
517
        throw Exception(Status::FatalError("should not reach here!"));
518
72.7k
    } else {
519
72.7k
        auto ss = LocalStateType::SharedStateType::create_shared();
520
72.7k
        ss->id = operator_id();
521
72.7k
        for (auto& dest : dests_id()) {
522
72.7k
            ss->related_op_ids.insert(dest);
523
72.7k
        }
524
72.7k
        return ss;
525
72.7k
    }
526
72.7k
}
_ZNK5doris17DataSinkOperatorXINS_20ResultSinkLocalStateEE19create_shared_stateEv
Line
Count
Source
511
8.02k
std::shared_ptr<BasicSharedState> DataSinkOperatorX<LocalStateType>::create_shared_state() const {
512
    if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
513
                                 LocalExchangeSharedState>) {
514
        return nullptr;
515
    } else if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
516
                                        MultiCastSharedState>) {
517
        throw Exception(Status::FatalError("should not reach here!"));
518
8.02k
    } else {
519
8.02k
        auto ss = LocalStateType::SharedStateType::create_shared();
520
8.02k
        ss->id = operator_id();
521
8.02k
        for (auto& dest : dests_id()) {
522
8.00k
            ss->related_op_ids.insert(dest);
523
8.00k
        }
524
8.02k
        return ss;
525
8.02k
    }
526
8.02k
}
Unexecuted instantiation: _ZNK5doris17DataSinkOperatorXINS_23JdbcTableSinkLocalStateEE19create_shared_stateEv
Unexecuted instantiation: _ZNK5doris17DataSinkOperatorXINS_27MemoryScratchSinkLocalStateEE19create_shared_stateEv
Unexecuted instantiation: _ZNK5doris17DataSinkOperatorXINS_24ResultFileSinkLocalStateEE19create_shared_stateEv
_ZNK5doris17DataSinkOperatorXINS_23OlapTableSinkLocalStateEE19create_shared_stateEv
Line
Count
Source
511
2.96k
std::shared_ptr<BasicSharedState> DataSinkOperatorX<LocalStateType>::create_shared_state() const {
512
    if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
513
                                 LocalExchangeSharedState>) {
514
        return nullptr;
515
    } else if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
516
                                        MultiCastSharedState>) {
517
        throw Exception(Status::FatalError("should not reach here!"));
518
2.96k
    } else {
519
2.96k
        auto ss = LocalStateType::SharedStateType::create_shared();
520
2.96k
        ss->id = operator_id();
521
2.96k
        for (auto& dest : dests_id()) {
522
2.96k
            ss->related_op_ids.insert(dest);
523
2.96k
        }
524
2.96k
        return ss;
525
2.96k
    }
526
2.96k
}
_ZNK5doris17DataSinkOperatorXINS_25OlapTableSinkV2LocalStateEE19create_shared_stateEv
Line
Count
Source
511
296
std::shared_ptr<BasicSharedState> DataSinkOperatorX<LocalStateType>::create_shared_state() const {
512
    if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
513
                                 LocalExchangeSharedState>) {
514
        return nullptr;
515
    } else if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
516
                                        MultiCastSharedState>) {
517
        throw Exception(Status::FatalError("should not reach here!"));
518
296
    } else {
519
296
        auto ss = LocalStateType::SharedStateType::create_shared();
520
296
        ss->id = operator_id();
521
296
        for (auto& dest : dests_id()) {
522
296
            ss->related_op_ids.insert(dest);
523
296
        }
524
296
        return ss;
525
296
    }
526
296
}
Unexecuted instantiation: _ZNK5doris17DataSinkOperatorXINS_23HiveTableSinkLocalStateEE19create_shared_stateEv
Unexecuted instantiation: _ZNK5doris17DataSinkOperatorXINS_22TVFTableSinkLocalStateEE19create_shared_stateEv
Unexecuted instantiation: _ZNK5doris17DataSinkOperatorXINS_26IcebergTableSinkLocalStateEE19create_shared_stateEv
Unexecuted instantiation: _ZNK5doris17DataSinkOperatorXINS_31SpillIcebergTableSinkLocalStateEE19create_shared_stateEv
Unexecuted instantiation: _ZNK5doris17DataSinkOperatorXINS_27IcebergDeleteSinkLocalStateEE19create_shared_stateEv
Unexecuted instantiation: _ZNK5doris17DataSinkOperatorXINS_26IcebergMergeSinkLocalStateEE19create_shared_stateEv
Unexecuted instantiation: _ZNK5doris17DataSinkOperatorXINS_21MCTableSinkLocalStateEE19create_shared_stateEv
_ZNK5doris17DataSinkOperatorXINS_22AnalyticSinkLocalStateEE19create_shared_stateEv
Line
Count
Source
511
636
std::shared_ptr<BasicSharedState> DataSinkOperatorX<LocalStateType>::create_shared_state() const {
512
    if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
513
                                 LocalExchangeSharedState>) {
514
        return nullptr;
515
    } else if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
516
                                        MultiCastSharedState>) {
517
        throw Exception(Status::FatalError("should not reach here!"));
518
636
    } else {
519
636
        auto ss = LocalStateType::SharedStateType::create_shared();
520
636
        ss->id = operator_id();
521
636
        for (auto& dest : dests_id()) {
522
636
            ss->related_op_ids.insert(dest);
523
636
        }
524
636
        return ss;
525
636
    }
526
636
}
Unexecuted instantiation: _ZNK5doris17DataSinkOperatorXINS_23BlackholeSinkLocalStateEE19create_shared_stateEv
_ZNK5doris17DataSinkOperatorXINS_18SortSinkLocalStateEE19create_shared_stateEv
Line
Count
Source
511
8.70k
std::shared_ptr<BasicSharedState> DataSinkOperatorX<LocalStateType>::create_shared_state() const {
512
    if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
513
                                 LocalExchangeSharedState>) {
514
        return nullptr;
515
    } else if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
516
                                        MultiCastSharedState>) {
517
        throw Exception(Status::FatalError("should not reach here!"));
518
8.70k
    } else {
519
8.70k
        auto ss = LocalStateType::SharedStateType::create_shared();
520
8.70k
        ss->id = operator_id();
521
8.70k
        for (auto& dest : dests_id()) {
522
8.68k
            ss->related_op_ids.insert(dest);
523
8.68k
        }
524
8.70k
        return ss;
525
8.70k
    }
526
8.70k
}
_ZNK5doris17DataSinkOperatorXINS_23SpillSortSinkLocalStateEE19create_shared_stateEv
Line
Count
Source
511
22
std::shared_ptr<BasicSharedState> DataSinkOperatorX<LocalStateType>::create_shared_state() const {
512
    if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
513
                                 LocalExchangeSharedState>) {
514
        return nullptr;
515
    } else if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
516
                                        MultiCastSharedState>) {
517
        throw Exception(Status::FatalError("should not reach here!"));
518
22
    } else {
519
22
        auto ss = LocalStateType::SharedStateType::create_shared();
520
22
        ss->id = operator_id();
521
22
        for (auto& dest : dests_id()) {
522
22
            ss->related_op_ids.insert(dest);
523
22
        }
524
22
        return ss;
525
22
    }
526
22
}
Unexecuted instantiation: _ZNK5doris17DataSinkOperatorXINS_27LocalExchangeSinkLocalStateEE19create_shared_stateEv
_ZNK5doris17DataSinkOperatorXINS_17AggSinkLocalStateEE19create_shared_stateEv
Line
Count
Source
511
3.60k
std::shared_ptr<BasicSharedState> DataSinkOperatorX<LocalStateType>::create_shared_state() const {
512
    if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
513
                                 LocalExchangeSharedState>) {
514
        return nullptr;
515
    } else if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
516
                                        MultiCastSharedState>) {
517
        throw Exception(Status::FatalError("should not reach here!"));
518
3.60k
    } else {
519
3.60k
        auto ss = LocalStateType::SharedStateType::create_shared();
520
3.60k
        ss->id = operator_id();
521
3.60k
        for (auto& dest : dests_id()) {
522
3.59k
            ss->related_op_ids.insert(dest);
523
3.59k
        }
524
3.60k
        return ss;
525
3.60k
    }
526
3.60k
}
Unexecuted instantiation: _ZNK5doris17DataSinkOperatorXINS_25BucketedAggSinkLocalStateEE19create_shared_stateEv
_ZNK5doris17DataSinkOperatorXINS_28PartitionedAggSinkLocalStateEE19create_shared_stateEv
Line
Count
Source
511
37
std::shared_ptr<BasicSharedState> DataSinkOperatorX<LocalStateType>::create_shared_state() const {
512
    if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
513
                                 LocalExchangeSharedState>) {
514
        return nullptr;
515
    } else if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
516
                                        MultiCastSharedState>) {
517
        throw Exception(Status::FatalError("should not reach here!"));
518
37
    } else {
519
37
        auto ss = LocalStateType::SharedStateType::create_shared();
520
37
        ss->id = operator_id();
521
37
        for (auto& dest : dests_id()) {
522
37
            ss->related_op_ids.insert(dest);
523
37
        }
524
37
        return ss;
525
37
    }
526
37
}
_ZNK5doris17DataSinkOperatorXINS_22ExchangeSinkLocalStateEE19create_shared_stateEv
Line
Count
Source
511
13.2k
std::shared_ptr<BasicSharedState> DataSinkOperatorX<LocalStateType>::create_shared_state() const {
512
    if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
513
                                 LocalExchangeSharedState>) {
514
        return nullptr;
515
    } else if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
516
                                        MultiCastSharedState>) {
517
        throw Exception(Status::FatalError("should not reach here!"));
518
13.2k
    } else {
519
13.2k
        auto ss = LocalStateType::SharedStateType::create_shared();
520
13.2k
        ss->id = operator_id();
521
13.2k
        for (auto& dest : dests_id()) {
522
13.1k
            ss->related_op_ids.insert(dest);
523
13.1k
        }
524
13.2k
        return ss;
525
13.2k
    }
526
13.2k
}
_ZNK5doris17DataSinkOperatorXINS_33NestedLoopJoinBuildSinkLocalStateEE19create_shared_stateEv
Line
Count
Source
511
283
std::shared_ptr<BasicSharedState> DataSinkOperatorX<LocalStateType>::create_shared_state() const {
512
    if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
513
                                 LocalExchangeSharedState>) {
514
        return nullptr;
515
    } else if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
516
                                        MultiCastSharedState>) {
517
        throw Exception(Status::FatalError("should not reach here!"));
518
283
    } else {
519
283
        auto ss = LocalStateType::SharedStateType::create_shared();
520
283
        ss->id = operator_id();
521
283
        for (auto& dest : dests_id()) {
522
283
            ss->related_op_ids.insert(dest);
523
283
        }
524
283
        return ss;
525
283
    }
526
283
}
Unexecuted instantiation: _ZNK5doris17DataSinkOperatorXINS_19UnionSinkLocalStateEE19create_shared_stateEv
Unexecuted instantiation: _ZNK5doris17DataSinkOperatorXINS_33MultiCastDataStreamSinkLocalStateEE19create_shared_stateEv
_ZNK5doris17DataSinkOperatorXINS_27PartitionSortSinkLocalStateEE19create_shared_stateEv
Line
Count
Source
511
112
std::shared_ptr<BasicSharedState> DataSinkOperatorX<LocalStateType>::create_shared_state() const {
512
    if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
513
                                 LocalExchangeSharedState>) {
514
        return nullptr;
515
    } else if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
516
                                        MultiCastSharedState>) {
517
        throw Exception(Status::FatalError("should not reach here!"));
518
112
    } else {
519
112
        auto ss = LocalStateType::SharedStateType::create_shared();
520
112
        ss->id = operator_id();
521
112
        for (auto& dest : dests_id()) {
522
112
            ss->related_op_ids.insert(dest);
523
112
        }
524
112
        return ss;
525
112
    }
526
112
}
Unexecuted instantiation: _ZNK5doris17DataSinkOperatorXINS_22SetProbeSinkLocalStateILb1EEEE19create_shared_stateEv
Unexecuted instantiation: _ZNK5doris17DataSinkOperatorXINS_22SetProbeSinkLocalStateILb0EEEE19create_shared_stateEv
_ZNK5doris17DataSinkOperatorXINS_17SetSinkLocalStateILb1EEEE19create_shared_stateEv
Line
Count
Source
511
27
std::shared_ptr<BasicSharedState> DataSinkOperatorX<LocalStateType>::create_shared_state() const {
512
    if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
513
                                 LocalExchangeSharedState>) {
514
        return nullptr;
515
    } else if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
516
                                        MultiCastSharedState>) {
517
        throw Exception(Status::FatalError("should not reach here!"));
518
27
    } else {
519
27
        auto ss = LocalStateType::SharedStateType::create_shared();
520
27
        ss->id = operator_id();
521
27
        for (auto& dest : dests_id()) {
522
27
            ss->related_op_ids.insert(dest);
523
27
        }
524
27
        return ss;
525
27
    }
526
27
}
_ZNK5doris17DataSinkOperatorXINS_17SetSinkLocalStateILb0EEEE19create_shared_stateEv
Line
Count
Source
511
19
std::shared_ptr<BasicSharedState> DataSinkOperatorX<LocalStateType>::create_shared_state() const {
512
    if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
513
                                 LocalExchangeSharedState>) {
514
        return nullptr;
515
    } else if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
516
                                        MultiCastSharedState>) {
517
        throw Exception(Status::FatalError("should not reach here!"));
518
19
    } else {
519
19
        auto ss = LocalStateType::SharedStateType::create_shared();
520
19
        ss->id = operator_id();
521
19
        for (auto& dest : dests_id()) {
522
19
            ss->related_op_ids.insert(dest);
523
19
        }
524
19
        return ss;
525
19
    }
526
19
}
Unexecuted instantiation: _ZNK5doris17DataSinkOperatorXINS_33PartitionedHashJoinSinkLocalStateEE19create_shared_stateEv
Unexecuted instantiation: _ZNK5doris17DataSinkOperatorXINS_30GroupCommitBlockSinkLocalStateEE19create_shared_stateEv
Unexecuted instantiation: _ZNK5doris17DataSinkOperatorXINS_19CacheSinkLocalStateEE19create_shared_stateEv
_ZNK5doris17DataSinkOperatorXINS_18DictSinkLocalStateEE19create_shared_stateEv
Line
Count
Source
511
10
std::shared_ptr<BasicSharedState> DataSinkOperatorX<LocalStateType>::create_shared_state() const {
512
    if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
513
                                 LocalExchangeSharedState>) {
514
        return nullptr;
515
    } else if constexpr (std::is_same_v<typename LocalStateType::SharedStateType,
516
                                        MultiCastSharedState>) {
517
        throw Exception(Status::FatalError("should not reach here!"));
518
10
    } else {
519
10
        auto ss = LocalStateType::SharedStateType::create_shared();
520
10
        ss->id = operator_id();
521
10
        for (auto& dest : dests_id()) {
522
10
            ss->related_op_ids.insert(dest);
523
10
        }
524
10
        return ss;
525
10
    }
526
10
}
Unexecuted instantiation: _ZNK5doris17DataSinkOperatorXINS_20RecCTESinkLocalStateEE19create_shared_stateEv
Unexecuted instantiation: _ZNK5doris17DataSinkOperatorXINS_26RecCTEAnchorSinkLocalStateEE19create_shared_stateEv
527
528
template <typename LocalStateType>
529
71.9k
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
71.9k
    auto local_state = LocalStateType::create_unique(state, this);
531
71.9k
    RETURN_IF_ERROR(local_state->init(state, info));
532
71.9k
    state->emplace_local_state(operator_id(), std::move(local_state));
533
71.9k
    return Status::OK();
534
71.9k
}
_ZN5doris9OperatorXINS_23HashJoinProbeLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
25.2k
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
25.2k
    auto local_state = LocalStateType::create_unique(state, this);
531
25.2k
    RETURN_IF_ERROR(local_state->init(state, info));
532
25.2k
    state->emplace_local_state(operator_id(), std::move(local_state));
533
25.2k
    return Status::OK();
534
25.2k
}
_ZN5doris9OperatorXINS_18OlapScanLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
12.1k
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
12.1k
    auto local_state = LocalStateType::create_unique(state, this);
531
12.1k
    RETURN_IF_ERROR(local_state->init(state, info));
532
12.1k
    state->emplace_local_state(operator_id(), std::move(local_state));
533
12.1k
    return Status::OK();
534
12.1k
}
Unexecuted instantiation: _ZN5doris9OperatorXINS_21GroupCommitLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Unexecuted instantiation: _ZN5doris9OperatorXINS_18JDBCScanLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
_ZN5doris9OperatorXINS_18FileScanLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
212
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
212
    auto local_state = LocalStateType::create_unique(state, this);
531
212
    RETURN_IF_ERROR(local_state->init(state, info));
532
212
    state->emplace_local_state(operator_id(), std::move(local_state));
533
212
    return Status::OK();
534
212
}
_ZN5doris9OperatorXINS_18AnalyticLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
624
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
624
    auto local_state = LocalStateType::create_unique(state, this);
531
624
    RETURN_IF_ERROR(local_state->init(state, info));
532
624
    state->emplace_local_state(operator_id(), std::move(local_state));
533
624
    return Status::OK();
534
624
}
_ZN5doris9OperatorXINS_14SortLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
571
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
571
    auto local_state = LocalStateType::create_unique(state, this);
531
571
    RETURN_IF_ERROR(local_state->init(state, info));
532
571
    state->emplace_local_state(operator_id(), std::move(local_state));
533
571
    return Status::OK();
534
571
}
_ZN5doris9OperatorXINS_19SpillSortLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
13
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
13
    auto local_state = LocalStateType::create_unique(state, this);
531
13
    RETURN_IF_ERROR(local_state->init(state, info));
532
13
    state->emplace_local_state(operator_id(), std::move(local_state));
533
13
    return Status::OK();
534
13
}
_ZN5doris9OperatorXINS_24LocalMergeSortLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
8.07k
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
8.07k
    auto local_state = LocalStateType::create_unique(state, this);
531
8.07k
    RETURN_IF_ERROR(local_state->init(state, info));
532
8.07k
    state->emplace_local_state(operator_id(), std::move(local_state));
533
8.07k
    return Status::OK();
534
8.07k
}
_ZN5doris9OperatorXINS_13AggLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
3.56k
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
3.56k
    auto local_state = LocalStateType::create_unique(state, this);
531
3.56k
    RETURN_IF_ERROR(local_state->init(state, info));
532
3.56k
    state->emplace_local_state(operator_id(), std::move(local_state));
533
3.56k
    return Status::OK();
534
3.56k
}
_ZN5doris9OperatorXINS_21BucketedAggLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
6
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
6
    auto local_state = LocalStateType::create_unique(state, this);
531
6
    RETURN_IF_ERROR(local_state->init(state, info));
532
6
    state->emplace_local_state(operator_id(), std::move(local_state));
533
6
    return Status::OK();
534
6
}
_ZN5doris9OperatorXINS_24PartitionedAggLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
28
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
28
    auto local_state = LocalStateType::create_unique(state, this);
531
28
    RETURN_IF_ERROR(local_state->init(state, info));
532
28
    state->emplace_local_state(operator_id(), std::move(local_state));
533
28
    return Status::OK();
534
28
}
_ZN5doris9OperatorXINS_23TableFunctionLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
23
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
23
    auto local_state = LocalStateType::create_unique(state, this);
531
23
    RETURN_IF_ERROR(local_state->init(state, info));
532
23
    state->emplace_local_state(operator_id(), std::move(local_state));
533
23
    return Status::OK();
534
23
}
_ZN5doris9OperatorXINS_18ExchangeLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
4.67k
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
4.67k
    auto local_state = LocalStateType::create_unique(state, this);
531
4.67k
    RETURN_IF_ERROR(local_state->init(state, info));
532
4.67k
    state->emplace_local_state(operator_id(), std::move(local_state));
533
4.67k
    return Status::OK();
534
4.67k
}
_ZN5doris9OperatorXINS_16RepeatLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
12
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
12
    auto local_state = LocalStateType::create_unique(state, this);
531
12
    RETURN_IF_ERROR(local_state->init(state, info));
532
12
    state->emplace_local_state(operator_id(), std::move(local_state));
533
12
    return Status::OK();
534
12
}
_ZN5doris9OperatorXINS_29NestedLoopJoinProbeLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
279
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
279
    auto local_state = LocalStateType::create_unique(state, this);
531
279
    RETURN_IF_ERROR(local_state->init(state, info));
532
279
    state->emplace_local_state(operator_id(), std::move(local_state));
533
279
    return Status::OK();
534
279
}
_ZN5doris9OperatorXINS_23AssertNumRowsLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
5
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
5
    auto local_state = LocalStateType::create_unique(state, this);
531
5
    RETURN_IF_ERROR(local_state->init(state, info));
532
5
    state->emplace_local_state(operator_id(), std::move(local_state));
533
5
    return Status::OK();
534
5
}
_ZN5doris9OperatorXINS_18EmptySetLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
109
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
109
    auto local_state = LocalStateType::create_unique(state, this);
531
109
    RETURN_IF_ERROR(local_state->init(state, info));
532
109
    state->emplace_local_state(operator_id(), std::move(local_state));
533
109
    return Status::OK();
534
109
}
_ZN5doris9OperatorXINS_21UnionSourceLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
2.69k
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
2.69k
    auto local_state = LocalStateType::create_unique(state, this);
531
2.69k
    RETURN_IF_ERROR(local_state->init(state, info));
532
2.69k
    state->emplace_local_state(operator_id(), std::move(local_state));
533
2.69k
    return Status::OK();
534
2.69k
}
_ZN5doris9OperatorXINS_35MultiCastDataStreamSourceLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
203
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
203
    auto local_state = LocalStateType::create_unique(state, this);
531
203
    RETURN_IF_ERROR(local_state->init(state, info));
532
203
    state->emplace_local_state(operator_id(), std::move(local_state));
533
203
    return Status::OK();
534
203
}
_ZN5doris9OperatorXINS_29PartitionSortSourceLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
10
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
10
    auto local_state = LocalStateType::create_unique(state, this);
531
10
    RETURN_IF_ERROR(local_state->init(state, info));
532
10
    state->emplace_local_state(operator_id(), std::move(local_state));
533
10
    return Status::OK();
534
10
}
_ZN5doris9OperatorXINS_19SetSourceLocalStateILb1EEEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
20
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
20
    auto local_state = LocalStateType::create_unique(state, this);
531
20
    RETURN_IF_ERROR(local_state->init(state, info));
532
20
    state->emplace_local_state(operator_id(), std::move(local_state));
533
20
    return Status::OK();
534
20
}
_ZN5doris9OperatorXINS_19SetSourceLocalStateILb0EEEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
13
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
13
    auto local_state = LocalStateType::create_unique(state, this);
531
13
    RETURN_IF_ERROR(local_state->init(state, info));
532
13
    state->emplace_local_state(operator_id(), std::move(local_state));
533
13
    return Status::OK();
534
13
}
_ZN5doris9OperatorXINS_17DataGenLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
39
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
39
    auto local_state = LocalStateType::create_unique(state, this);
531
39
    RETURN_IF_ERROR(local_state->init(state, info));
532
39
    state->emplace_local_state(operator_id(), std::move(local_state));
533
39
    return Status::OK();
534
39
}
_ZN5doris9OperatorXINS_20SchemaScanLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
1
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
1
    auto local_state = LocalStateType::create_unique(state, this);
531
1
    RETURN_IF_ERROR(local_state->init(state, info));
532
1
    state->emplace_local_state(operator_id(), std::move(local_state));
533
1
    return Status::OK();
534
1
}
_ZN5doris9OperatorXINS_18MetaScanLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
34
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
34
    auto local_state = LocalStateType::create_unique(state, this);
531
34
    RETURN_IF_ERROR(local_state->init(state, info));
532
34
    state->emplace_local_state(operator_id(), std::move(local_state));
533
34
    return Status::OK();
534
34
}
_ZN5doris9OperatorXINS_29LocalExchangeSourceLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
12.1k
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
12.1k
    auto local_state = LocalStateType::create_unique(state, this);
531
12.1k
    RETURN_IF_ERROR(local_state->init(state, info));
532
12.1k
    state->emplace_local_state(operator_id(), std::move(local_state));
533
12.1k
    return Status::OK();
534
12.1k
}
Unexecuted instantiation: _ZN5doris9OperatorXINS_34PartitionedHashJoinProbeLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Unexecuted instantiation: _ZN5doris9OperatorXINS_21CacheSourceLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Unexecuted instantiation: _ZN5doris9OperatorXINS_22RecCTESourceLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Unexecuted instantiation: _ZN5doris9OperatorXINS_20RecCTEScanLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
_ZN5doris9OperatorXINS_25MaterializationLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
361
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
361
    auto local_state = LocalStateType::create_unique(state, this);
531
361
    RETURN_IF_ERROR(local_state->init(state, info));
532
361
    state->emplace_local_state(operator_id(), std::move(local_state));
533
361
    return Status::OK();
534
361
}
_ZN5doris9OperatorXINS_16SelectLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
114
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
114
    auto local_state = LocalStateType::create_unique(state, this);
531
114
    RETURN_IF_ERROR(local_state->init(state, info));
532
114
    state->emplace_local_state(operator_id(), std::move(local_state));
533
114
    return Status::OK();
534
114
}
_ZN5doris9OperatorXINS_22StreamingAggLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
152
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
152
    auto local_state = LocalStateType::create_unique(state, this);
531
152
    RETURN_IF_ERROR(local_state->init(state, info));
532
152
    state->emplace_local_state(operator_id(), std::move(local_state));
533
152
    return Status::OK();
534
152
}
_ZN5doris9OperatorXINS_30DistinctStreamingAggLocalStateEE17setup_local_stateEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
529
545
Status OperatorX<LocalStateType>::setup_local_state(RuntimeState* state, LocalStateInfo& info) {
530
545
    auto local_state = LocalStateType::create_unique(state, this);
531
545
    RETURN_IF_ERROR(local_state->init(state, info));
532
545
    state->emplace_local_state(operator_id(), std::move(local_state));
533
545
    return Status::OK();
534
545
}
535
536
PipelineXSinkLocalStateBase::PipelineXSinkLocalStateBase(DataSinkOperatorXBase* parent,
537
                                                         RuntimeState* state)
538
117k
        : _parent(parent), _state(state) {}
539
540
PipelineXLocalStateBase::PipelineXLocalStateBase(RuntimeState* state, OperatorXBase* parent)
541
72.4k
        : _num_rows_returned(0),
542
72.4k
          _rows_returned_counter(nullptr),
543
72.4k
          _parent(parent),
544
72.4k
          _state(state),
545
72.4k
          _budget(state->batch_size(), state->preferred_block_size_bytes()) {}
546
547
template <typename SharedStateArg>
548
72.2k
Status PipelineXLocalState<SharedStateArg>::init(RuntimeState* state, LocalStateInfo& info) {
549
72.2k
    _operator_profile.reset(new RuntimeProfile(_parent->get_name() + name_suffix()));
550
72.2k
    _common_profile.reset(new RuntimeProfile(profile::COMMON_COUNTERS));
551
72.2k
    _custom_profile.reset(new RuntimeProfile(profile::CUSTOM_COUNTERS));
552
72.2k
    _operator_profile->set_metadata(_parent->node_id());
553
    // indent is false so that source operator will have same
554
    // indentation_level with its parent operator.
555
72.2k
    info.parent_profile->add_child(_operator_profile.get(), /*indent=*/false);
556
72.2k
    _operator_profile->add_child(_common_profile.get(), true);
557
72.2k
    _operator_profile->add_child(_custom_profile.get(), true);
558
72.2k
    constexpr auto is_fake_shared = std::is_same_v<SharedStateArg, FakeSharedState>;
559
72.2k
    if constexpr (!is_fake_shared) {
560
53.7k
        if (info.shared_state_map.find(_parent->operator_id()) != info.shared_state_map.end()) {
561
12.7k
            _shared_state = info.shared_state_map.at(_parent->operator_id())
562
12.7k
                                    .first.get()
563
12.7k
                                    ->template cast<SharedStateArg>();
564
565
12.7k
            _dependency = _shared_state->get_dep_by_channel_id(info.task_idx).front().get();
566
12.7k
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
567
12.7k
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
568
40.9k
        } else if (info.shared_state) {
569
38.3k
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
570
0
                DCHECK(false);
571
0
            }
572
            // For UnionSourceOperator without children, there is no shared state.
573
38.3k
            _shared_state = info.shared_state->template cast<SharedStateArg>();
574
575
38.3k
            _dependency = _shared_state->create_source_dependency(
576
38.3k
                    _parent->operator_id(), _parent->node_id(), _parent->get_name());
577
38.3k
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
578
38.3k
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
579
38.3k
        } else {
580
18.4E
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
581
18.4E
                DCHECK(false);
582
18.4E
            }
583
2.64k
        }
584
53.7k
    }
585
586
72.2k
    if (must_set_shared_state() && _shared_state == nullptr) {
587
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
588
0
    }
589
590
72.2k
    _rows_returned_counter =
591
72.2k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::ROWS_PRODUCED, TUnit::UNIT, 1);
592
72.2k
    _blocks_returned_counter =
593
72.2k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::BLOCKS_PRODUCED, TUnit::UNIT, 1);
594
72.2k
    _output_block_bytes_counter =
595
72.2k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
596
72.2k
    _max_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
597
72.2k
            _common_profile, profile::MAX_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
598
72.2k
    _min_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
599
72.2k
            _common_profile, profile::MIN_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
600
72.2k
    _projection_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::PROJECTION_TIME, 2);
601
72.2k
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
602
72.2k
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
603
72.2k
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
604
72.2k
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
605
72.2k
    _memory_used_counter =
606
72.2k
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
607
72.2k
    _common_profile->add_info_string("IsColocate",
608
72.2k
                                     std::to_string(_parent->is_colocated_operator()));
609
72.2k
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
610
72.2k
    _common_profile->add_info_string("FollowedByShuffledOperator",
611
72.2k
                                     std::to_string(_parent->followed_by_shuffled_operator()));
612
72.2k
    return Status::OK();
613
72.2k
}
_ZN5doris19PipelineXLocalStateINS_19HashJoinSharedStateEE4initEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
548
25.2k
Status PipelineXLocalState<SharedStateArg>::init(RuntimeState* state, LocalStateInfo& info) {
549
25.2k
    _operator_profile.reset(new RuntimeProfile(_parent->get_name() + name_suffix()));
550
25.2k
    _common_profile.reset(new RuntimeProfile(profile::COMMON_COUNTERS));
551
25.2k
    _custom_profile.reset(new RuntimeProfile(profile::CUSTOM_COUNTERS));
552
25.2k
    _operator_profile->set_metadata(_parent->node_id());
553
    // indent is false so that source operator will have same
554
    // indentation_level with its parent operator.
555
25.2k
    info.parent_profile->add_child(_operator_profile.get(), /*indent=*/false);
556
25.2k
    _operator_profile->add_child(_common_profile.get(), true);
557
25.2k
    _operator_profile->add_child(_custom_profile.get(), true);
558
25.2k
    constexpr auto is_fake_shared = std::is_same_v<SharedStateArg, FakeSharedState>;
559
25.2k
    if constexpr (!is_fake_shared) {
560
25.2k
        if (info.shared_state_map.find(_parent->operator_id()) != info.shared_state_map.end()) {
561
605
            _shared_state = info.shared_state_map.at(_parent->operator_id())
562
605
                                    .first.get()
563
605
                                    ->template cast<SharedStateArg>();
564
565
605
            _dependency = _shared_state->get_dep_by_channel_id(info.task_idx).front().get();
566
605
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
567
605
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
568
24.6k
        } else if (info.shared_state) {
569
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
570
                DCHECK(false);
571
            }
572
            // For UnionSourceOperator without children, there is no shared state.
573
24.6k
            _shared_state = info.shared_state->template cast<SharedStateArg>();
574
575
24.6k
            _dependency = _shared_state->create_source_dependency(
576
24.6k
                    _parent->operator_id(), _parent->node_id(), _parent->get_name());
577
24.6k
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
578
24.6k
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
579
24.6k
        } else {
580
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
581
                DCHECK(false);
582
            }
583
0
        }
584
25.2k
    }
585
586
25.2k
    if (must_set_shared_state() && _shared_state == nullptr) {
587
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
588
0
    }
589
590
25.2k
    _rows_returned_counter =
591
25.2k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::ROWS_PRODUCED, TUnit::UNIT, 1);
592
25.2k
    _blocks_returned_counter =
593
25.2k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::BLOCKS_PRODUCED, TUnit::UNIT, 1);
594
25.2k
    _output_block_bytes_counter =
595
25.2k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
596
25.2k
    _max_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
597
25.2k
            _common_profile, profile::MAX_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
598
25.2k
    _min_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
599
25.2k
            _common_profile, profile::MIN_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
600
25.2k
    _projection_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::PROJECTION_TIME, 2);
601
25.2k
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
602
25.2k
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
603
25.2k
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
604
25.2k
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
605
25.2k
    _memory_used_counter =
606
25.2k
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
607
25.2k
    _common_profile->add_info_string("IsColocate",
608
25.2k
                                     std::to_string(_parent->is_colocated_operator()));
609
25.2k
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
610
25.2k
    _common_profile->add_info_string("FollowedByShuffledOperator",
611
25.2k
                                     std::to_string(_parent->followed_by_shuffled_operator()));
612
25.2k
    return Status::OK();
613
25.2k
}
_ZN5doris19PipelineXLocalStateINS_30PartitionedHashJoinSharedStateEE4initEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
548
1
Status PipelineXLocalState<SharedStateArg>::init(RuntimeState* state, LocalStateInfo& info) {
549
1
    _operator_profile.reset(new RuntimeProfile(_parent->get_name() + name_suffix()));
550
1
    _common_profile.reset(new RuntimeProfile(profile::COMMON_COUNTERS));
551
1
    _custom_profile.reset(new RuntimeProfile(profile::CUSTOM_COUNTERS));
552
1
    _operator_profile->set_metadata(_parent->node_id());
553
    // indent is false so that source operator will have same
554
    // indentation_level with its parent operator.
555
1
    info.parent_profile->add_child(_operator_profile.get(), /*indent=*/false);
556
1
    _operator_profile->add_child(_common_profile.get(), true);
557
1
    _operator_profile->add_child(_custom_profile.get(), true);
558
1
    constexpr auto is_fake_shared = std::is_same_v<SharedStateArg, FakeSharedState>;
559
1
    if constexpr (!is_fake_shared) {
560
1
        if (info.shared_state_map.find(_parent->operator_id()) != info.shared_state_map.end()) {
561
0
            _shared_state = info.shared_state_map.at(_parent->operator_id())
562
0
                                    .first.get()
563
0
                                    ->template cast<SharedStateArg>();
564
565
0
            _dependency = _shared_state->get_dep_by_channel_id(info.task_idx).front().get();
566
0
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
567
0
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
568
1
        } else if (info.shared_state) {
569
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
570
                DCHECK(false);
571
            }
572
            // For UnionSourceOperator without children, there is no shared state.
573
1
            _shared_state = info.shared_state->template cast<SharedStateArg>();
574
575
1
            _dependency = _shared_state->create_source_dependency(
576
1
                    _parent->operator_id(), _parent->node_id(), _parent->get_name());
577
1
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
578
1
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
579
1
        } else {
580
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
581
                DCHECK(false);
582
            }
583
0
        }
584
1
    }
585
586
1
    if (must_set_shared_state() && _shared_state == nullptr) {
587
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
588
0
    }
589
590
1
    _rows_returned_counter =
591
1
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::ROWS_PRODUCED, TUnit::UNIT, 1);
592
1
    _blocks_returned_counter =
593
1
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::BLOCKS_PRODUCED, TUnit::UNIT, 1);
594
1
    _output_block_bytes_counter =
595
1
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
596
1
    _max_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
597
1
            _common_profile, profile::MAX_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
598
1
    _min_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
599
1
            _common_profile, profile::MIN_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
600
1
    _projection_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::PROJECTION_TIME, 2);
601
1
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
602
1
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
603
1
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
604
1
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
605
1
    _memory_used_counter =
606
1
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
607
1
    _common_profile->add_info_string("IsColocate",
608
1
                                     std::to_string(_parent->is_colocated_operator()));
609
1
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
610
1
    _common_profile->add_info_string("FollowedByShuffledOperator",
611
1
                                     std::to_string(_parent->followed_by_shuffled_operator()));
612
1
    return Status::OK();
613
1
}
_ZN5doris19PipelineXLocalStateINS_15SortSharedStateEE4initEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
548
8.68k
Status PipelineXLocalState<SharedStateArg>::init(RuntimeState* state, LocalStateInfo& info) {
549
8.68k
    _operator_profile.reset(new RuntimeProfile(_parent->get_name() + name_suffix()));
550
8.68k
    _common_profile.reset(new RuntimeProfile(profile::COMMON_COUNTERS));
551
8.68k
    _custom_profile.reset(new RuntimeProfile(profile::CUSTOM_COUNTERS));
552
8.68k
    _operator_profile->set_metadata(_parent->node_id());
553
    // indent is false so that source operator will have same
554
    // indentation_level with its parent operator.
555
8.68k
    info.parent_profile->add_child(_operator_profile.get(), /*indent=*/false);
556
8.68k
    _operator_profile->add_child(_common_profile.get(), true);
557
8.68k
    _operator_profile->add_child(_custom_profile.get(), true);
558
8.68k
    constexpr auto is_fake_shared = std::is_same_v<SharedStateArg, FakeSharedState>;
559
8.68k
    if constexpr (!is_fake_shared) {
560
8.68k
        if (info.shared_state_map.find(_parent->operator_id()) != info.shared_state_map.end()) {
561
0
            _shared_state = info.shared_state_map.at(_parent->operator_id())
562
0
                                    .first.get()
563
0
                                    ->template cast<SharedStateArg>();
564
565
0
            _dependency = _shared_state->get_dep_by_channel_id(info.task_idx).front().get();
566
0
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
567
0
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
568
8.68k
        } else if (info.shared_state) {
569
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
570
                DCHECK(false);
571
            }
572
            // For UnionSourceOperator without children, there is no shared state.
573
8.61k
            _shared_state = info.shared_state->template cast<SharedStateArg>();
574
575
8.61k
            _dependency = _shared_state->create_source_dependency(
576
8.61k
                    _parent->operator_id(), _parent->node_id(), _parent->get_name());
577
8.61k
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
578
8.61k
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
579
8.61k
        } else {
580
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
581
                DCHECK(false);
582
            }
583
68
        }
584
8.68k
    }
585
586
8.68k
    if (must_set_shared_state() && _shared_state == nullptr) {
587
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
588
0
    }
589
590
8.68k
    _rows_returned_counter =
591
8.68k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::ROWS_PRODUCED, TUnit::UNIT, 1);
592
8.68k
    _blocks_returned_counter =
593
8.68k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::BLOCKS_PRODUCED, TUnit::UNIT, 1);
594
8.68k
    _output_block_bytes_counter =
595
8.68k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
596
8.68k
    _max_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
597
8.68k
            _common_profile, profile::MAX_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
598
8.68k
    _min_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
599
8.68k
            _common_profile, profile::MIN_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
600
8.68k
    _projection_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::PROJECTION_TIME, 2);
601
8.68k
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
602
8.68k
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
603
8.68k
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
604
8.68k
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
605
8.68k
    _memory_used_counter =
606
8.68k
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
607
8.68k
    _common_profile->add_info_string("IsColocate",
608
8.68k
                                     std::to_string(_parent->is_colocated_operator()));
609
8.68k
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
610
8.68k
    _common_profile->add_info_string("FollowedByShuffledOperator",
611
8.68k
                                     std::to_string(_parent->followed_by_shuffled_operator()));
612
8.68k
    return Status::OK();
613
8.68k
}
_ZN5doris19PipelineXLocalStateINS_20SpillSortSharedStateEE4initEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
548
13
Status PipelineXLocalState<SharedStateArg>::init(RuntimeState* state, LocalStateInfo& info) {
549
13
    _operator_profile.reset(new RuntimeProfile(_parent->get_name() + name_suffix()));
550
13
    _common_profile.reset(new RuntimeProfile(profile::COMMON_COUNTERS));
551
13
    _custom_profile.reset(new RuntimeProfile(profile::CUSTOM_COUNTERS));
552
13
    _operator_profile->set_metadata(_parent->node_id());
553
    // indent is false so that source operator will have same
554
    // indentation_level with its parent operator.
555
13
    info.parent_profile->add_child(_operator_profile.get(), /*indent=*/false);
556
13
    _operator_profile->add_child(_common_profile.get(), true);
557
13
    _operator_profile->add_child(_custom_profile.get(), true);
558
13
    constexpr auto is_fake_shared = std::is_same_v<SharedStateArg, FakeSharedState>;
559
13
    if constexpr (!is_fake_shared) {
560
13
        if (info.shared_state_map.find(_parent->operator_id()) != info.shared_state_map.end()) {
561
0
            _shared_state = info.shared_state_map.at(_parent->operator_id())
562
0
                                    .first.get()
563
0
                                    ->template cast<SharedStateArg>();
564
565
0
            _dependency = _shared_state->get_dep_by_channel_id(info.task_idx).front().get();
566
0
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
567
0
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
568
13
        } else if (info.shared_state) {
569
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
570
                DCHECK(false);
571
            }
572
            // For UnionSourceOperator without children, there is no shared state.
573
13
            _shared_state = info.shared_state->template cast<SharedStateArg>();
574
575
13
            _dependency = _shared_state->create_source_dependency(
576
13
                    _parent->operator_id(), _parent->node_id(), _parent->get_name());
577
13
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
578
13
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
579
13
        } else {
580
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
581
                DCHECK(false);
582
            }
583
0
        }
584
13
    }
585
586
13
    if (must_set_shared_state() && _shared_state == nullptr) {
587
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
588
0
    }
589
590
13
    _rows_returned_counter =
591
13
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::ROWS_PRODUCED, TUnit::UNIT, 1);
592
13
    _blocks_returned_counter =
593
13
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::BLOCKS_PRODUCED, TUnit::UNIT, 1);
594
13
    _output_block_bytes_counter =
595
13
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
596
13
    _max_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
597
13
            _common_profile, profile::MAX_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
598
13
    _min_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
599
13
            _common_profile, profile::MIN_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
600
13
    _projection_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::PROJECTION_TIME, 2);
601
13
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
602
13
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
603
13
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
604
13
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
605
13
    _memory_used_counter =
606
13
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
607
13
    _common_profile->add_info_string("IsColocate",
608
13
                                     std::to_string(_parent->is_colocated_operator()));
609
13
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
610
13
    _common_profile->add_info_string("FollowedByShuffledOperator",
611
13
                                     std::to_string(_parent->followed_by_shuffled_operator()));
612
13
    return Status::OK();
613
13
}
_ZN5doris19PipelineXLocalStateINS_25NestedLoopJoinSharedStateEE4initEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
548
281
Status PipelineXLocalState<SharedStateArg>::init(RuntimeState* state, LocalStateInfo& info) {
549
281
    _operator_profile.reset(new RuntimeProfile(_parent->get_name() + name_suffix()));
550
281
    _common_profile.reset(new RuntimeProfile(profile::COMMON_COUNTERS));
551
281
    _custom_profile.reset(new RuntimeProfile(profile::CUSTOM_COUNTERS));
552
281
    _operator_profile->set_metadata(_parent->node_id());
553
    // indent is false so that source operator will have same
554
    // indentation_level with its parent operator.
555
281
    info.parent_profile->add_child(_operator_profile.get(), /*indent=*/false);
556
281
    _operator_profile->add_child(_common_profile.get(), true);
557
281
    _operator_profile->add_child(_custom_profile.get(), true);
558
281
    constexpr auto is_fake_shared = std::is_same_v<SharedStateArg, FakeSharedState>;
559
281
    if constexpr (!is_fake_shared) {
560
281
        if (info.shared_state_map.find(_parent->operator_id()) != info.shared_state_map.end()) {
561
0
            _shared_state = info.shared_state_map.at(_parent->operator_id())
562
0
                                    .first.get()
563
0
                                    ->template cast<SharedStateArg>();
564
565
0
            _dependency = _shared_state->get_dep_by_channel_id(info.task_idx).front().get();
566
0
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
567
0
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
568
281
        } else if (info.shared_state) {
569
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
570
                DCHECK(false);
571
            }
572
            // For UnionSourceOperator without children, there is no shared state.
573
279
            _shared_state = info.shared_state->template cast<SharedStateArg>();
574
575
279
            _dependency = _shared_state->create_source_dependency(
576
279
                    _parent->operator_id(), _parent->node_id(), _parent->get_name());
577
279
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
578
279
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
579
279
        } else {
580
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
581
                DCHECK(false);
582
            }
583
2
        }
584
281
    }
585
586
283
    if (must_set_shared_state() && _shared_state == nullptr) {
587
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
588
0
    }
589
590
281
    _rows_returned_counter =
591
281
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::ROWS_PRODUCED, TUnit::UNIT, 1);
592
281
    _blocks_returned_counter =
593
281
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::BLOCKS_PRODUCED, TUnit::UNIT, 1);
594
281
    _output_block_bytes_counter =
595
281
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
596
281
    _max_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
597
281
            _common_profile, profile::MAX_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
598
281
    _min_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
599
281
            _common_profile, profile::MIN_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
600
281
    _projection_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::PROJECTION_TIME, 2);
601
281
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
602
281
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
603
281
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
604
281
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
605
281
    _memory_used_counter =
606
281
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
607
281
    _common_profile->add_info_string("IsColocate",
608
281
                                     std::to_string(_parent->is_colocated_operator()));
609
281
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
610
281
    _common_profile->add_info_string("FollowedByShuffledOperator",
611
281
                                     std::to_string(_parent->followed_by_shuffled_operator()));
612
281
    return Status::OK();
613
281
}
_ZN5doris19PipelineXLocalStateINS_19AnalyticSharedStateEE4initEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
548
636
Status PipelineXLocalState<SharedStateArg>::init(RuntimeState* state, LocalStateInfo& info) {
549
636
    _operator_profile.reset(new RuntimeProfile(_parent->get_name() + name_suffix()));
550
636
    _common_profile.reset(new RuntimeProfile(profile::COMMON_COUNTERS));
551
636
    _custom_profile.reset(new RuntimeProfile(profile::CUSTOM_COUNTERS));
552
636
    _operator_profile->set_metadata(_parent->node_id());
553
    // indent is false so that source operator will have same
554
    // indentation_level with its parent operator.
555
636
    info.parent_profile->add_child(_operator_profile.get(), /*indent=*/false);
556
636
    _operator_profile->add_child(_common_profile.get(), true);
557
636
    _operator_profile->add_child(_custom_profile.get(), true);
558
636
    constexpr auto is_fake_shared = std::is_same_v<SharedStateArg, FakeSharedState>;
559
636
    if constexpr (!is_fake_shared) {
560
636
        if (info.shared_state_map.find(_parent->operator_id()) != info.shared_state_map.end()) {
561
0
            _shared_state = info.shared_state_map.at(_parent->operator_id())
562
0
                                    .first.get()
563
0
                                    ->template cast<SharedStateArg>();
564
565
0
            _dependency = _shared_state->get_dep_by_channel_id(info.task_idx).front().get();
566
0
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
567
0
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
568
636
        } else if (info.shared_state) {
569
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
570
                DCHECK(false);
571
            }
572
            // For UnionSourceOperator without children, there is no shared state.
573
636
            _shared_state = info.shared_state->template cast<SharedStateArg>();
574
575
636
            _dependency = _shared_state->create_source_dependency(
576
636
                    _parent->operator_id(), _parent->node_id(), _parent->get_name());
577
636
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
578
636
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
579
636
        } else {
580
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
581
                DCHECK(false);
582
            }
583
0
        }
584
636
    }
585
586
636
    if (must_set_shared_state() && _shared_state == nullptr) {
587
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
588
0
    }
589
590
636
    _rows_returned_counter =
591
636
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::ROWS_PRODUCED, TUnit::UNIT, 1);
592
636
    _blocks_returned_counter =
593
636
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::BLOCKS_PRODUCED, TUnit::UNIT, 1);
594
636
    _output_block_bytes_counter =
595
636
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
596
636
    _max_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
597
636
            _common_profile, profile::MAX_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
598
636
    _min_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
599
636
            _common_profile, profile::MIN_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
600
636
    _projection_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::PROJECTION_TIME, 2);
601
636
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
602
636
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
603
636
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
604
636
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
605
636
    _memory_used_counter =
606
636
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
607
636
    _common_profile->add_info_string("IsColocate",
608
636
                                     std::to_string(_parent->is_colocated_operator()));
609
636
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
610
636
    _common_profile->add_info_string("FollowedByShuffledOperator",
611
636
                                     std::to_string(_parent->followed_by_shuffled_operator()));
612
636
    return Status::OK();
613
636
}
_ZN5doris19PipelineXLocalStateINS_14AggSharedStateEE4initEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
548
3.58k
Status PipelineXLocalState<SharedStateArg>::init(RuntimeState* state, LocalStateInfo& info) {
549
3.58k
    _operator_profile.reset(new RuntimeProfile(_parent->get_name() + name_suffix()));
550
3.58k
    _common_profile.reset(new RuntimeProfile(profile::COMMON_COUNTERS));
551
3.58k
    _custom_profile.reset(new RuntimeProfile(profile::CUSTOM_COUNTERS));
552
3.58k
    _operator_profile->set_metadata(_parent->node_id());
553
    // indent is false so that source operator will have same
554
    // indentation_level with its parent operator.
555
3.58k
    info.parent_profile->add_child(_operator_profile.get(), /*indent=*/false);
556
3.58k
    _operator_profile->add_child(_common_profile.get(), true);
557
3.58k
    _operator_profile->add_child(_custom_profile.get(), true);
558
3.58k
    constexpr auto is_fake_shared = std::is_same_v<SharedStateArg, FakeSharedState>;
559
3.58k
    if constexpr (!is_fake_shared) {
560
3.58k
        if (info.shared_state_map.find(_parent->operator_id()) != info.shared_state_map.end()) {
561
0
            _shared_state = info.shared_state_map.at(_parent->operator_id())
562
0
                                    .first.get()
563
0
                                    ->template cast<SharedStateArg>();
564
565
0
            _dependency = _shared_state->get_dep_by_channel_id(info.task_idx).front().get();
566
0
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
567
0
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
568
3.58k
        } else if (info.shared_state) {
569
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
570
                DCHECK(false);
571
            }
572
            // For UnionSourceOperator without children, there is no shared state.
573
3.57k
            _shared_state = info.shared_state->template cast<SharedStateArg>();
574
575
3.57k
            _dependency = _shared_state->create_source_dependency(
576
3.57k
                    _parent->operator_id(), _parent->node_id(), _parent->get_name());
577
3.57k
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
578
3.57k
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
579
3.57k
        } else {
580
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
581
                DCHECK(false);
582
            }
583
15
        }
584
3.58k
    }
585
586
3.58k
    if (must_set_shared_state() && _shared_state == nullptr) {
587
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
588
0
    }
589
590
3.58k
    _rows_returned_counter =
591
3.58k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::ROWS_PRODUCED, TUnit::UNIT, 1);
592
3.58k
    _blocks_returned_counter =
593
3.58k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::BLOCKS_PRODUCED, TUnit::UNIT, 1);
594
3.58k
    _output_block_bytes_counter =
595
3.58k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
596
3.58k
    _max_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
597
3.58k
            _common_profile, profile::MAX_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
598
3.58k
    _min_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
599
3.58k
            _common_profile, profile::MIN_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
600
3.58k
    _projection_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::PROJECTION_TIME, 2);
601
3.58k
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
602
3.58k
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
603
3.58k
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
604
3.58k
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
605
3.58k
    _memory_used_counter =
606
3.58k
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
607
3.58k
    _common_profile->add_info_string("IsColocate",
608
3.58k
                                     std::to_string(_parent->is_colocated_operator()));
609
3.58k
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
610
3.58k
    _common_profile->add_info_string("FollowedByShuffledOperator",
611
3.58k
                                     std::to_string(_parent->followed_by_shuffled_operator()));
612
3.58k
    return Status::OK();
613
3.58k
}
_ZN5doris19PipelineXLocalStateINS_22BucketedAggSharedStateEE4initEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
548
6
Status PipelineXLocalState<SharedStateArg>::init(RuntimeState* state, LocalStateInfo& info) {
549
6
    _operator_profile.reset(new RuntimeProfile(_parent->get_name() + name_suffix()));
550
6
    _common_profile.reset(new RuntimeProfile(profile::COMMON_COUNTERS));
551
6
    _custom_profile.reset(new RuntimeProfile(profile::CUSTOM_COUNTERS));
552
6
    _operator_profile->set_metadata(_parent->node_id());
553
    // indent is false so that source operator will have same
554
    // indentation_level with its parent operator.
555
6
    info.parent_profile->add_child(_operator_profile.get(), /*indent=*/false);
556
6
    _operator_profile->add_child(_common_profile.get(), true);
557
6
    _operator_profile->add_child(_custom_profile.get(), true);
558
6
    constexpr auto is_fake_shared = std::is_same_v<SharedStateArg, FakeSharedState>;
559
6
    if constexpr (!is_fake_shared) {
560
6
        if (info.shared_state_map.find(_parent->operator_id()) != info.shared_state_map.end()) {
561
6
            _shared_state = info.shared_state_map.at(_parent->operator_id())
562
6
                                    .first.get()
563
6
                                    ->template cast<SharedStateArg>();
564
565
6
            _dependency = _shared_state->get_dep_by_channel_id(info.task_idx).front().get();
566
6
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
567
6
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
568
6
        } else if (info.shared_state) {
569
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
570
                DCHECK(false);
571
            }
572
            // For UnionSourceOperator without children, there is no shared state.
573
0
            _shared_state = info.shared_state->template cast<SharedStateArg>();
574
575
0
            _dependency = _shared_state->create_source_dependency(
576
0
                    _parent->operator_id(), _parent->node_id(), _parent->get_name());
577
0
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
578
0
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
579
0
        } else {
580
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
581
                DCHECK(false);
582
            }
583
0
        }
584
6
    }
585
586
6
    if (must_set_shared_state() && _shared_state == nullptr) {
587
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
588
0
    }
589
590
6
    _rows_returned_counter =
591
6
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::ROWS_PRODUCED, TUnit::UNIT, 1);
592
6
    _blocks_returned_counter =
593
6
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::BLOCKS_PRODUCED, TUnit::UNIT, 1);
594
6
    _output_block_bytes_counter =
595
6
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
596
6
    _max_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
597
6
            _common_profile, profile::MAX_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
598
6
    _min_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
599
6
            _common_profile, profile::MIN_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
600
6
    _projection_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::PROJECTION_TIME, 2);
601
6
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
602
6
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
603
6
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
604
6
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
605
6
    _memory_used_counter =
606
6
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
607
6
    _common_profile->add_info_string("IsColocate",
608
6
                                     std::to_string(_parent->is_colocated_operator()));
609
6
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
610
6
    _common_profile->add_info_string("FollowedByShuffledOperator",
611
6
                                     std::to_string(_parent->followed_by_shuffled_operator()));
612
6
    return Status::OK();
613
6
}
_ZN5doris19PipelineXLocalStateINS_25PartitionedAggSharedStateEE4initEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
548
28
Status PipelineXLocalState<SharedStateArg>::init(RuntimeState* state, LocalStateInfo& info) {
549
28
    _operator_profile.reset(new RuntimeProfile(_parent->get_name() + name_suffix()));
550
28
    _common_profile.reset(new RuntimeProfile(profile::COMMON_COUNTERS));
551
28
    _custom_profile.reset(new RuntimeProfile(profile::CUSTOM_COUNTERS));
552
28
    _operator_profile->set_metadata(_parent->node_id());
553
    // indent is false so that source operator will have same
554
    // indentation_level with its parent operator.
555
28
    info.parent_profile->add_child(_operator_profile.get(), /*indent=*/false);
556
28
    _operator_profile->add_child(_common_profile.get(), true);
557
28
    _operator_profile->add_child(_custom_profile.get(), true);
558
28
    constexpr auto is_fake_shared = std::is_same_v<SharedStateArg, FakeSharedState>;
559
28
    if constexpr (!is_fake_shared) {
560
28
        if (info.shared_state_map.find(_parent->operator_id()) != info.shared_state_map.end()) {
561
0
            _shared_state = info.shared_state_map.at(_parent->operator_id())
562
0
                                    .first.get()
563
0
                                    ->template cast<SharedStateArg>();
564
565
0
            _dependency = _shared_state->get_dep_by_channel_id(info.task_idx).front().get();
566
0
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
567
0
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
568
28
        } else if (info.shared_state) {
569
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
570
                DCHECK(false);
571
            }
572
            // For UnionSourceOperator without children, there is no shared state.
573
28
            _shared_state = info.shared_state->template cast<SharedStateArg>();
574
575
28
            _dependency = _shared_state->create_source_dependency(
576
28
                    _parent->operator_id(), _parent->node_id(), _parent->get_name());
577
28
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
578
28
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
579
28
        } else {
580
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
581
                DCHECK(false);
582
            }
583
0
        }
584
28
    }
585
586
28
    if (must_set_shared_state() && _shared_state == nullptr) {
587
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
588
0
    }
589
590
28
    _rows_returned_counter =
591
28
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::ROWS_PRODUCED, TUnit::UNIT, 1);
592
28
    _blocks_returned_counter =
593
28
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::BLOCKS_PRODUCED, TUnit::UNIT, 1);
594
28
    _output_block_bytes_counter =
595
28
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
596
28
    _max_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
597
28
            _common_profile, profile::MAX_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
598
28
    _min_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
599
28
            _common_profile, profile::MIN_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
600
28
    _projection_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::PROJECTION_TIME, 2);
601
28
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
602
28
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
603
28
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
604
28
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
605
28
    _memory_used_counter =
606
28
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
607
28
    _common_profile->add_info_string("IsColocate",
608
28
                                     std::to_string(_parent->is_colocated_operator()));
609
28
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
610
28
    _common_profile->add_info_string("FollowedByShuffledOperator",
611
28
                                     std::to_string(_parent->followed_by_shuffled_operator()));
612
28
    return Status::OK();
613
28
}
_ZN5doris19PipelineXLocalStateINS_15FakeSharedStateEE4initEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
548
18.5k
Status PipelineXLocalState<SharedStateArg>::init(RuntimeState* state, LocalStateInfo& info) {
549
18.5k
    _operator_profile.reset(new RuntimeProfile(_parent->get_name() + name_suffix()));
550
18.5k
    _common_profile.reset(new RuntimeProfile(profile::COMMON_COUNTERS));
551
18.5k
    _custom_profile.reset(new RuntimeProfile(profile::CUSTOM_COUNTERS));
552
18.5k
    _operator_profile->set_metadata(_parent->node_id());
553
    // indent is false so that source operator will have same
554
    // indentation_level with its parent operator.
555
18.5k
    info.parent_profile->add_child(_operator_profile.get(), /*indent=*/false);
556
18.5k
    _operator_profile->add_child(_common_profile.get(), true);
557
18.5k
    _operator_profile->add_child(_custom_profile.get(), true);
558
18.5k
    constexpr auto is_fake_shared = std::is_same_v<SharedStateArg, FakeSharedState>;
559
    if constexpr (!is_fake_shared) {
560
        if (info.shared_state_map.find(_parent->operator_id()) != info.shared_state_map.end()) {
561
            _shared_state = info.shared_state_map.at(_parent->operator_id())
562
                                    .first.get()
563
                                    ->template cast<SharedStateArg>();
564
565
            _dependency = _shared_state->get_dep_by_channel_id(info.task_idx).front().get();
566
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
567
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
568
        } else if (info.shared_state) {
569
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
570
                DCHECK(false);
571
            }
572
            // For UnionSourceOperator without children, there is no shared state.
573
            _shared_state = info.shared_state->template cast<SharedStateArg>();
574
575
            _dependency = _shared_state->create_source_dependency(
576
                    _parent->operator_id(), _parent->node_id(), _parent->get_name());
577
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
578
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
579
        } else {
580
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
581
                DCHECK(false);
582
            }
583
        }
584
    }
585
586
18.5k
    if (must_set_shared_state() && _shared_state == nullptr) {
587
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
588
0
    }
589
590
18.5k
    _rows_returned_counter =
591
18.5k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::ROWS_PRODUCED, TUnit::UNIT, 1);
592
18.5k
    _blocks_returned_counter =
593
18.5k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::BLOCKS_PRODUCED, TUnit::UNIT, 1);
594
18.5k
    _output_block_bytes_counter =
595
18.5k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
596
18.5k
    _max_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
597
18.5k
            _common_profile, profile::MAX_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
598
18.5k
    _min_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
599
18.5k
            _common_profile, profile::MIN_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
600
18.5k
    _projection_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::PROJECTION_TIME, 2);
601
18.5k
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
602
18.5k
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
603
18.5k
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
604
18.5k
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
605
18.5k
    _memory_used_counter =
606
18.5k
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
607
18.5k
    _common_profile->add_info_string("IsColocate",
608
18.5k
                                     std::to_string(_parent->is_colocated_operator()));
609
18.5k
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
610
18.5k
    _common_profile->add_info_string("FollowedByShuffledOperator",
611
18.5k
                                     std::to_string(_parent->followed_by_shuffled_operator()));
612
18.5k
    return Status::OK();
613
18.5k
}
_ZN5doris19PipelineXLocalStateINS_16UnionSharedStateEE4initEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
548
2.69k
Status PipelineXLocalState<SharedStateArg>::init(RuntimeState* state, LocalStateInfo& info) {
549
2.69k
    _operator_profile.reset(new RuntimeProfile(_parent->get_name() + name_suffix()));
550
2.69k
    _common_profile.reset(new RuntimeProfile(profile::COMMON_COUNTERS));
551
2.69k
    _custom_profile.reset(new RuntimeProfile(profile::CUSTOM_COUNTERS));
552
2.69k
    _operator_profile->set_metadata(_parent->node_id());
553
    // indent is false so that source operator will have same
554
    // indentation_level with its parent operator.
555
2.69k
    info.parent_profile->add_child(_operator_profile.get(), /*indent=*/false);
556
2.69k
    _operator_profile->add_child(_common_profile.get(), true);
557
2.69k
    _operator_profile->add_child(_custom_profile.get(), true);
558
2.69k
    constexpr auto is_fake_shared = std::is_same_v<SharedStateArg, FakeSharedState>;
559
2.69k
    if constexpr (!is_fake_shared) {
560
2.69k
        if (info.shared_state_map.find(_parent->operator_id()) != info.shared_state_map.end()) {
561
0
            _shared_state = info.shared_state_map.at(_parent->operator_id())
562
0
                                    .first.get()
563
0
                                    ->template cast<SharedStateArg>();
564
565
0
            _dependency = _shared_state->get_dep_by_channel_id(info.task_idx).front().get();
566
0
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
567
0
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
568
2.69k
        } else if (info.shared_state) {
569
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
570
                DCHECK(false);
571
            }
572
            // For UnionSourceOperator without children, there is no shared state.
573
121
            _shared_state = info.shared_state->template cast<SharedStateArg>();
574
575
121
            _dependency = _shared_state->create_source_dependency(
576
121
                    _parent->operator_id(), _parent->node_id(), _parent->get_name());
577
121
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
578
121
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
579
2.57k
        } else {
580
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
581
                DCHECK(false);
582
            }
583
2.57k
        }
584
2.69k
    }
585
586
2.69k
    if (must_set_shared_state() && _shared_state == nullptr) {
587
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
588
0
    }
589
590
2.69k
    _rows_returned_counter =
591
2.69k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::ROWS_PRODUCED, TUnit::UNIT, 1);
592
2.69k
    _blocks_returned_counter =
593
2.69k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::BLOCKS_PRODUCED, TUnit::UNIT, 1);
594
2.69k
    _output_block_bytes_counter =
595
2.69k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
596
2.69k
    _max_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
597
2.69k
            _common_profile, profile::MAX_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
598
2.69k
    _min_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
599
2.69k
            _common_profile, profile::MIN_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
600
2.69k
    _projection_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::PROJECTION_TIME, 2);
601
2.69k
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
602
2.69k
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
603
2.69k
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
604
2.69k
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
605
2.69k
    _memory_used_counter =
606
2.69k
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
607
2.69k
    _common_profile->add_info_string("IsColocate",
608
2.69k
                                     std::to_string(_parent->is_colocated_operator()));
609
2.69k
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
610
2.69k
    _common_profile->add_info_string("FollowedByShuffledOperator",
611
2.69k
                                     std::to_string(_parent->followed_by_shuffled_operator()));
612
2.69k
    return Status::OK();
613
2.69k
}
_ZN5doris19PipelineXLocalStateINS_20DataQueueSharedStateEE4initEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
548
12
Status PipelineXLocalState<SharedStateArg>::init(RuntimeState* state, LocalStateInfo& info) {
549
12
    _operator_profile.reset(new RuntimeProfile(_parent->get_name() + name_suffix()));
550
12
    _common_profile.reset(new RuntimeProfile(profile::COMMON_COUNTERS));
551
12
    _custom_profile.reset(new RuntimeProfile(profile::CUSTOM_COUNTERS));
552
12
    _operator_profile->set_metadata(_parent->node_id());
553
    // indent is false so that source operator will have same
554
    // indentation_level with its parent operator.
555
12
    info.parent_profile->add_child(_operator_profile.get(), /*indent=*/false);
556
12
    _operator_profile->add_child(_common_profile.get(), true);
557
12
    _operator_profile->add_child(_custom_profile.get(), true);
558
12
    constexpr auto is_fake_shared = std::is_same_v<SharedStateArg, FakeSharedState>;
559
12
    if constexpr (!is_fake_shared) {
560
12
        if (info.shared_state_map.find(_parent->operator_id()) != info.shared_state_map.end()) {
561
0
            _shared_state = info.shared_state_map.at(_parent->operator_id())
562
0
                                    .first.get()
563
0
                                    ->template cast<SharedStateArg>();
564
565
0
            _dependency = _shared_state->get_dep_by_channel_id(info.task_idx).front().get();
566
0
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
567
0
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
568
12
        } else if (info.shared_state) {
569
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
570
                DCHECK(false);
571
            }
572
            // For UnionSourceOperator without children, there is no shared state.
573
12
            _shared_state = info.shared_state->template cast<SharedStateArg>();
574
575
12
            _dependency = _shared_state->create_source_dependency(
576
12
                    _parent->operator_id(), _parent->node_id(), _parent->get_name());
577
12
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
578
12
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
579
12
        } else {
580
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
581
                DCHECK(false);
582
            }
583
0
        }
584
12
    }
585
586
12
    if (must_set_shared_state() && _shared_state == nullptr) {
587
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
588
0
    }
589
590
12
    _rows_returned_counter =
591
12
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::ROWS_PRODUCED, TUnit::UNIT, 1);
592
12
    _blocks_returned_counter =
593
12
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::BLOCKS_PRODUCED, TUnit::UNIT, 1);
594
12
    _output_block_bytes_counter =
595
12
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
596
12
    _max_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
597
12
            _common_profile, profile::MAX_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
598
12
    _min_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
599
12
            _common_profile, profile::MIN_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
600
12
    _projection_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::PROJECTION_TIME, 2);
601
12
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
602
12
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
603
12
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
604
12
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
605
12
    _memory_used_counter =
606
12
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
607
12
    _common_profile->add_info_string("IsColocate",
608
12
                                     std::to_string(_parent->is_colocated_operator()));
609
12
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
610
12
    _common_profile->add_info_string("FollowedByShuffledOperator",
611
12
                                     std::to_string(_parent->followed_by_shuffled_operator()));
612
12
    return Status::OK();
613
12
}
_ZN5doris19PipelineXLocalStateINS_20MultiCastSharedStateEE4initEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
548
201
Status PipelineXLocalState<SharedStateArg>::init(RuntimeState* state, LocalStateInfo& info) {
549
201
    _operator_profile.reset(new RuntimeProfile(_parent->get_name() + name_suffix()));
550
201
    _common_profile.reset(new RuntimeProfile(profile::COMMON_COUNTERS));
551
201
    _custom_profile.reset(new RuntimeProfile(profile::CUSTOM_COUNTERS));
552
201
    _operator_profile->set_metadata(_parent->node_id());
553
    // indent is false so that source operator will have same
554
    // indentation_level with its parent operator.
555
201
    info.parent_profile->add_child(_operator_profile.get(), /*indent=*/false);
556
201
    _operator_profile->add_child(_common_profile.get(), true);
557
201
    _operator_profile->add_child(_custom_profile.get(), true);
558
201
    constexpr auto is_fake_shared = std::is_same_v<SharedStateArg, FakeSharedState>;
559
201
    if constexpr (!is_fake_shared) {
560
201
        if (info.shared_state_map.find(_parent->operator_id()) != info.shared_state_map.end()) {
561
0
            _shared_state = info.shared_state_map.at(_parent->operator_id())
562
0
                                    .first.get()
563
0
                                    ->template cast<SharedStateArg>();
564
565
0
            _dependency = _shared_state->get_dep_by_channel_id(info.task_idx).front().get();
566
0
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
567
0
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
568
203
        } else if (info.shared_state) {
569
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
570
                DCHECK(false);
571
            }
572
            // For UnionSourceOperator without children, there is no shared state.
573
203
            _shared_state = info.shared_state->template cast<SharedStateArg>();
574
575
203
            _dependency = _shared_state->create_source_dependency(
576
203
                    _parent->operator_id(), _parent->node_id(), _parent->get_name());
577
203
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
578
203
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
579
18.4E
        } else {
580
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
581
                DCHECK(false);
582
            }
583
18.4E
        }
584
201
    }
585
586
202
    if (must_set_shared_state() && _shared_state == nullptr) {
587
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
588
0
    }
589
590
201
    _rows_returned_counter =
591
201
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::ROWS_PRODUCED, TUnit::UNIT, 1);
592
201
    _blocks_returned_counter =
593
201
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::BLOCKS_PRODUCED, TUnit::UNIT, 1);
594
201
    _output_block_bytes_counter =
595
201
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
596
201
    _max_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
597
201
            _common_profile, profile::MAX_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
598
201
    _min_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
599
201
            _common_profile, profile::MIN_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
600
201
    _projection_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::PROJECTION_TIME, 2);
601
201
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
602
201
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
603
201
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
604
201
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
605
201
    _memory_used_counter =
606
201
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
607
201
    _common_profile->add_info_string("IsColocate",
608
201
                                     std::to_string(_parent->is_colocated_operator()));
609
201
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
610
201
    _common_profile->add_info_string("FollowedByShuffledOperator",
611
201
                                     std::to_string(_parent->followed_by_shuffled_operator()));
612
201
    return Status::OK();
613
201
}
_ZN5doris19PipelineXLocalStateINS_28PartitionSortNodeSharedStateEE4initEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
548
112
Status PipelineXLocalState<SharedStateArg>::init(RuntimeState* state, LocalStateInfo& info) {
549
112
    _operator_profile.reset(new RuntimeProfile(_parent->get_name() + name_suffix()));
550
112
    _common_profile.reset(new RuntimeProfile(profile::COMMON_COUNTERS));
551
112
    _custom_profile.reset(new RuntimeProfile(profile::CUSTOM_COUNTERS));
552
112
    _operator_profile->set_metadata(_parent->node_id());
553
    // indent is false so that source operator will have same
554
    // indentation_level with its parent operator.
555
112
    info.parent_profile->add_child(_operator_profile.get(), /*indent=*/false);
556
112
    _operator_profile->add_child(_common_profile.get(), true);
557
112
    _operator_profile->add_child(_custom_profile.get(), true);
558
112
    constexpr auto is_fake_shared = std::is_same_v<SharedStateArg, FakeSharedState>;
559
112
    if constexpr (!is_fake_shared) {
560
112
        if (info.shared_state_map.find(_parent->operator_id()) != info.shared_state_map.end()) {
561
0
            _shared_state = info.shared_state_map.at(_parent->operator_id())
562
0
                                    .first.get()
563
0
                                    ->template cast<SharedStateArg>();
564
565
0
            _dependency = _shared_state->get_dep_by_channel_id(info.task_idx).front().get();
566
0
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
567
0
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
568
112
        } else if (info.shared_state) {
569
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
570
                DCHECK(false);
571
            }
572
            // For UnionSourceOperator without children, there is no shared state.
573
112
            _shared_state = info.shared_state->template cast<SharedStateArg>();
574
575
112
            _dependency = _shared_state->create_source_dependency(
576
112
                    _parent->operator_id(), _parent->node_id(), _parent->get_name());
577
112
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
578
112
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
579
112
        } else {
580
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
581
                DCHECK(false);
582
            }
583
0
        }
584
112
    }
585
586
112
    if (must_set_shared_state() && _shared_state == nullptr) {
587
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
588
0
    }
589
590
112
    _rows_returned_counter =
591
112
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::ROWS_PRODUCED, TUnit::UNIT, 1);
592
112
    _blocks_returned_counter =
593
112
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::BLOCKS_PRODUCED, TUnit::UNIT, 1);
594
112
    _output_block_bytes_counter =
595
112
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
596
112
    _max_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
597
112
            _common_profile, profile::MAX_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
598
112
    _min_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
599
112
            _common_profile, profile::MIN_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
600
112
    _projection_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::PROJECTION_TIME, 2);
601
112
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
602
112
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
603
112
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
604
112
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
605
112
    _memory_used_counter =
606
112
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
607
112
    _common_profile->add_info_string("IsColocate",
608
112
                                     std::to_string(_parent->is_colocated_operator()));
609
112
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
610
112
    _common_profile->add_info_string("FollowedByShuffledOperator",
611
112
                                     std::to_string(_parent->followed_by_shuffled_operator()));
612
112
    return Status::OK();
613
112
}
_ZN5doris19PipelineXLocalStateINS_14SetSharedStateEE4initEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
548
46
Status PipelineXLocalState<SharedStateArg>::init(RuntimeState* state, LocalStateInfo& info) {
549
46
    _operator_profile.reset(new RuntimeProfile(_parent->get_name() + name_suffix()));
550
46
    _common_profile.reset(new RuntimeProfile(profile::COMMON_COUNTERS));
551
46
    _custom_profile.reset(new RuntimeProfile(profile::CUSTOM_COUNTERS));
552
46
    _operator_profile->set_metadata(_parent->node_id());
553
    // indent is false so that source operator will have same
554
    // indentation_level with its parent operator.
555
46
    info.parent_profile->add_child(_operator_profile.get(), /*indent=*/false);
556
46
    _operator_profile->add_child(_common_profile.get(), true);
557
46
    _operator_profile->add_child(_custom_profile.get(), true);
558
46
    constexpr auto is_fake_shared = std::is_same_v<SharedStateArg, FakeSharedState>;
559
46
    if constexpr (!is_fake_shared) {
560
46
        if (info.shared_state_map.find(_parent->operator_id()) != info.shared_state_map.end()) {
561
0
            _shared_state = info.shared_state_map.at(_parent->operator_id())
562
0
                                    .first.get()
563
0
                                    ->template cast<SharedStateArg>();
564
565
0
            _dependency = _shared_state->get_dep_by_channel_id(info.task_idx).front().get();
566
0
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
567
0
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
568
46
        } else if (info.shared_state) {
569
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
570
                DCHECK(false);
571
            }
572
            // For UnionSourceOperator without children, there is no shared state.
573
46
            _shared_state = info.shared_state->template cast<SharedStateArg>();
574
575
46
            _dependency = _shared_state->create_source_dependency(
576
46
                    _parent->operator_id(), _parent->node_id(), _parent->get_name());
577
46
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
578
46
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
579
46
        } else {
580
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
581
                DCHECK(false);
582
            }
583
0
        }
584
46
    }
585
586
46
    if (must_set_shared_state() && _shared_state == nullptr) {
587
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
588
0
    }
589
590
46
    _rows_returned_counter =
591
46
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::ROWS_PRODUCED, TUnit::UNIT, 1);
592
46
    _blocks_returned_counter =
593
46
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::BLOCKS_PRODUCED, TUnit::UNIT, 1);
594
46
    _output_block_bytes_counter =
595
46
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
596
46
    _max_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
597
46
            _common_profile, profile::MAX_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
598
46
    _min_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
599
46
            _common_profile, profile::MIN_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
600
46
    _projection_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::PROJECTION_TIME, 2);
601
46
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
602
46
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
603
46
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
604
46
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
605
46
    _memory_used_counter =
606
46
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
607
46
    _common_profile->add_info_string("IsColocate",
608
46
                                     std::to_string(_parent->is_colocated_operator()));
609
46
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
610
46
    _common_profile->add_info_string("FollowedByShuffledOperator",
611
46
                                     std::to_string(_parent->followed_by_shuffled_operator()));
612
46
    return Status::OK();
613
46
}
_ZN5doris19PipelineXLocalStateINS_24LocalExchangeSharedStateEE4initEPNS_12RuntimeStateERNS_14LocalStateInfoE
Line
Count
Source
548
12.1k
Status PipelineXLocalState<SharedStateArg>::init(RuntimeState* state, LocalStateInfo& info) {
549
12.1k
    _operator_profile.reset(new RuntimeProfile(_parent->get_name() + name_suffix()));
550
12.1k
    _common_profile.reset(new RuntimeProfile(profile::COMMON_COUNTERS));
551
12.1k
    _custom_profile.reset(new RuntimeProfile(profile::CUSTOM_COUNTERS));
552
12.1k
    _operator_profile->set_metadata(_parent->node_id());
553
    // indent is false so that source operator will have same
554
    // indentation_level with its parent operator.
555
12.1k
    info.parent_profile->add_child(_operator_profile.get(), /*indent=*/false);
556
12.1k
    _operator_profile->add_child(_common_profile.get(), true);
557
12.1k
    _operator_profile->add_child(_custom_profile.get(), true);
558
12.1k
    constexpr auto is_fake_shared = std::is_same_v<SharedStateArg, FakeSharedState>;
559
12.1k
    if constexpr (!is_fake_shared) {
560
12.1k
        if (info.shared_state_map.find(_parent->operator_id()) != info.shared_state_map.end()) {
561
12.1k
            _shared_state = info.shared_state_map.at(_parent->operator_id())
562
12.1k
                                    .first.get()
563
12.1k
                                    ->template cast<SharedStateArg>();
564
565
12.1k
            _dependency = _shared_state->get_dep_by_channel_id(info.task_idx).front().get();
566
12.1k
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
567
12.1k
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
568
18.4E
        } else if (info.shared_state) {
569
0
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
570
0
                DCHECK(false);
571
0
            }
572
            // For UnionSourceOperator without children, there is no shared state.
573
0
            _shared_state = info.shared_state->template cast<SharedStateArg>();
574
575
0
            _dependency = _shared_state->create_source_dependency(
576
0
                    _parent->operator_id(), _parent->node_id(), _parent->get_name());
577
0
            _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
578
0
                    _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
579
18.4E
        } else {
580
18.4E
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedStateArg>) {
581
18.4E
                DCHECK(false);
582
18.4E
            }
583
18.4E
        }
584
12.1k
    }
585
586
12.1k
    if (must_set_shared_state() && _shared_state == nullptr) {
587
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
588
0
    }
589
590
12.1k
    _rows_returned_counter =
591
12.1k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::ROWS_PRODUCED, TUnit::UNIT, 1);
592
12.1k
    _blocks_returned_counter =
593
12.1k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::BLOCKS_PRODUCED, TUnit::UNIT, 1);
594
12.1k
    _output_block_bytes_counter =
595
12.1k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
596
12.1k
    _max_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
597
12.1k
            _common_profile, profile::MAX_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
598
12.1k
    _min_output_block_bytes_counter = ADD_COUNTER_WITH_LEVEL(
599
12.1k
            _common_profile, profile::MIN_OUTPUT_BLOCK_BYTES, TUnit::BYTES, 1);
600
12.1k
    _projection_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::PROJECTION_TIME, 2);
601
12.1k
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
602
12.1k
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
603
12.1k
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
604
12.1k
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
605
12.1k
    _memory_used_counter =
606
12.1k
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
607
12.1k
    _common_profile->add_info_string("IsColocate",
608
12.1k
                                     std::to_string(_parent->is_colocated_operator()));
609
12.1k
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
610
12.1k
    _common_profile->add_info_string("FollowedByShuffledOperator",
611
12.1k
                                     std::to_string(_parent->followed_by_shuffled_operator()));
612
12.1k
    return Status::OK();
613
12.1k
}
Unexecuted instantiation: _ZN5doris19PipelineXLocalStateINS_16BasicSharedStateEE4initEPNS_12RuntimeStateERNS_14LocalStateInfoE
Unexecuted instantiation: _ZN5doris19PipelineXLocalStateINS_17RecCTESharedStateEE4initEPNS_12RuntimeStateERNS_14LocalStateInfoE
614
615
template <typename SharedStateArg>
616
72.2k
Status PipelineXLocalState<SharedStateArg>::open(RuntimeState* state) {
617
72.2k
    _conjuncts.resize(_parent->_conjuncts.size());
618
97.7k
    for (size_t i = 0; i < _conjuncts.size(); i++) {
619
25.4k
        RETURN_IF_ERROR(_parent->_conjuncts[i]->clone(state, _conjuncts[i]));
620
25.4k
    }
621
72.2k
    if (_parent->has_projection()) {
622
38.8k
        const auto& projection = *_parent->_projection;
623
38.8k
        _projections.resize(projection.projections.size());
624
219k
        for (size_t i = 0; i < _projections.size(); i++) {
625
180k
            RETURN_IF_ERROR(projection.projections[i]->clone(state, _projections[i]));
626
180k
        }
627
38.8k
        _intermediate_projections.resize(projection.intermediate_projections.size());
628
38.9k
        for (int i = 0; i < projection.intermediate_projections.size(); i++) {
629
99
            _intermediate_projections[i].resize(projection.intermediate_projections[i].size());
630
683
            for (int j = 0; j < projection.intermediate_projections[i].size(); j++) {
631
584
                RETURN_IF_ERROR(projection.intermediate_projections[i][j]->clone(
632
584
                        state, _intermediate_projections[i][j]));
633
584
            }
634
99
        }
635
38.8k
    }
636
72.2k
    return Status::OK();
637
72.2k
}
_ZN5doris19PipelineXLocalStateINS_19HashJoinSharedStateEE4openEPNS_12RuntimeStateE
Line
Count
Source
616
25.2k
Status PipelineXLocalState<SharedStateArg>::open(RuntimeState* state) {
617
25.2k
    _conjuncts.resize(_parent->_conjuncts.size());
618
25.3k
    for (size_t i = 0; i < _conjuncts.size(); i++) {
619
8
        RETURN_IF_ERROR(_parent->_conjuncts[i]->clone(state, _conjuncts[i]));
620
8
    }
621
25.2k
    if (_parent->has_projection()) {
622
25.2k
        const auto& projection = *_parent->_projection;
623
25.2k
        _projections.resize(projection.projections.size());
624
95.9k
        for (size_t i = 0; i < _projections.size(); i++) {
625
70.6k
            RETURN_IF_ERROR(projection.projections[i]->clone(state, _projections[i]));
626
70.6k
        }
627
25.2k
        _intermediate_projections.resize(projection.intermediate_projections.size());
628
25.3k
        for (int i = 0; i < projection.intermediate_projections.size(); i++) {
629
28
            _intermediate_projections[i].resize(projection.intermediate_projections[i].size());
630
228
            for (int j = 0; j < projection.intermediate_projections[i].size(); j++) {
631
200
                RETURN_IF_ERROR(projection.intermediate_projections[i][j]->clone(
632
200
                        state, _intermediate_projections[i][j]));
633
200
            }
634
28
        }
635
25.2k
    }
636
25.2k
    return Status::OK();
637
25.2k
}
_ZN5doris19PipelineXLocalStateINS_30PartitionedHashJoinSharedStateEE4openEPNS_12RuntimeStateE
Line
Count
Source
616
3
Status PipelineXLocalState<SharedStateArg>::open(RuntimeState* state) {
617
3
    _conjuncts.resize(_parent->_conjuncts.size());
618
3
    for (size_t i = 0; i < _conjuncts.size(); i++) {
619
0
        RETURN_IF_ERROR(_parent->_conjuncts[i]->clone(state, _conjuncts[i]));
620
0
    }
621
3
    if (_parent->has_projection()) {
622
0
        const auto& projection = *_parent->_projection;
623
0
        _projections.resize(projection.projections.size());
624
0
        for (size_t i = 0; i < _projections.size(); i++) {
625
0
            RETURN_IF_ERROR(projection.projections[i]->clone(state, _projections[i]));
626
0
        }
627
0
        _intermediate_projections.resize(projection.intermediate_projections.size());
628
0
        for (int i = 0; i < projection.intermediate_projections.size(); i++) {
629
0
            _intermediate_projections[i].resize(projection.intermediate_projections[i].size());
630
0
            for (int j = 0; j < projection.intermediate_projections[i].size(); j++) {
631
0
                RETURN_IF_ERROR(projection.intermediate_projections[i][j]->clone(
632
0
                        state, _intermediate_projections[i][j]));
633
0
            }
634
0
        }
635
0
    }
636
3
    return Status::OK();
637
3
}
_ZN5doris19PipelineXLocalStateINS_15SortSharedStateEE4openEPNS_12RuntimeStateE
Line
Count
Source
616
8.71k
Status PipelineXLocalState<SharedStateArg>::open(RuntimeState* state) {
617
8.71k
    _conjuncts.resize(_parent->_conjuncts.size());
618
8.71k
    for (size_t i = 0; i < _conjuncts.size(); i++) {
619
0
        RETURN_IF_ERROR(_parent->_conjuncts[i]->clone(state, _conjuncts[i]));
620
0
    }
621
8.71k
    if (_parent->has_projection()) {
622
8
        const auto& projection = *_parent->_projection;
623
8
        _projections.resize(projection.projections.size());
624
17
        for (size_t i = 0; i < _projections.size(); i++) {
625
9
            RETURN_IF_ERROR(projection.projections[i]->clone(state, _projections[i]));
626
9
        }
627
8
        _intermediate_projections.resize(projection.intermediate_projections.size());
628
8
        for (int i = 0; i < projection.intermediate_projections.size(); i++) {
629
0
            _intermediate_projections[i].resize(projection.intermediate_projections[i].size());
630
0
            for (int j = 0; j < projection.intermediate_projections[i].size(); j++) {
631
0
                RETURN_IF_ERROR(projection.intermediate_projections[i][j]->clone(
632
0
                        state, _intermediate_projections[i][j]));
633
0
            }
634
0
        }
635
8
    }
636
8.71k
    return Status::OK();
637
8.71k
}
_ZN5doris19PipelineXLocalStateINS_20SpillSortSharedStateEE4openEPNS_12RuntimeStateE
Line
Count
Source
616
13
Status PipelineXLocalState<SharedStateArg>::open(RuntimeState* state) {
617
13
    _conjuncts.resize(_parent->_conjuncts.size());
618
13
    for (size_t i = 0; i < _conjuncts.size(); i++) {
619
0
        RETURN_IF_ERROR(_parent->_conjuncts[i]->clone(state, _conjuncts[i]));
620
0
    }
621
13
    if (_parent->has_projection()) {
622
0
        const auto& projection = *_parent->_projection;
623
0
        _projections.resize(projection.projections.size());
624
0
        for (size_t i = 0; i < _projections.size(); i++) {
625
0
            RETURN_IF_ERROR(projection.projections[i]->clone(state, _projections[i]));
626
0
        }
627
0
        _intermediate_projections.resize(projection.intermediate_projections.size());
628
0
        for (int i = 0; i < projection.intermediate_projections.size(); i++) {
629
0
            _intermediate_projections[i].resize(projection.intermediate_projections[i].size());
630
0
            for (int j = 0; j < projection.intermediate_projections[i].size(); j++) {
631
0
                RETURN_IF_ERROR(projection.intermediate_projections[i][j]->clone(
632
0
                        state, _intermediate_projections[i][j]));
633
0
            }
634
0
        }
635
0
    }
636
13
    return Status::OK();
637
13
}
_ZN5doris19PipelineXLocalStateINS_25NestedLoopJoinSharedStateEE4openEPNS_12RuntimeStateE
Line
Count
Source
616
283
Status PipelineXLocalState<SharedStateArg>::open(RuntimeState* state) {
617
283
    _conjuncts.resize(_parent->_conjuncts.size());
618
283
    for (size_t i = 0; i < _conjuncts.size(); i++) {
619
0
        RETURN_IF_ERROR(_parent->_conjuncts[i]->clone(state, _conjuncts[i]));
620
0
    }
621
283
    if (_parent->has_projection()) {
622
283
        const auto& projection = *_parent->_projection;
623
283
        _projections.resize(projection.projections.size());
624
1.27k
        for (size_t i = 0; i < _projections.size(); i++) {
625
992
            RETURN_IF_ERROR(projection.projections[i]->clone(state, _projections[i]));
626
992
        }
627
283
        _intermediate_projections.resize(projection.intermediate_projections.size());
628
283
        for (int i = 0; i < projection.intermediate_projections.size(); i++) {
629
0
            _intermediate_projections[i].resize(projection.intermediate_projections[i].size());
630
0
            for (int j = 0; j < projection.intermediate_projections[i].size(); j++) {
631
0
                RETURN_IF_ERROR(projection.intermediate_projections[i][j]->clone(
632
0
                        state, _intermediate_projections[i][j]));
633
0
            }
634
0
        }
635
283
    }
636
283
    return Status::OK();
637
283
}
_ZN5doris19PipelineXLocalStateINS_19AnalyticSharedStateEE4openEPNS_12RuntimeStateE
Line
Count
Source
616
636
Status PipelineXLocalState<SharedStateArg>::open(RuntimeState* state) {
617
636
    _conjuncts.resize(_parent->_conjuncts.size());
618
647
    for (size_t i = 0; i < _conjuncts.size(); i++) {
619
11
        RETURN_IF_ERROR(_parent->_conjuncts[i]->clone(state, _conjuncts[i]));
620
11
    }
621
636
    if (_parent->has_projection()) {
622
372
        const auto& projection = *_parent->_projection;
623
372
        _projections.resize(projection.projections.size());
624
1.58k
        for (size_t i = 0; i < _projections.size(); i++) {
625
1.21k
            RETURN_IF_ERROR(projection.projections[i]->clone(state, _projections[i]));
626
1.21k
        }
627
372
        _intermediate_projections.resize(projection.intermediate_projections.size());
628
380
        for (int i = 0; i < projection.intermediate_projections.size(); i++) {
629
8
            _intermediate_projections[i].resize(projection.intermediate_projections[i].size());
630
68
            for (int j = 0; j < projection.intermediate_projections[i].size(); j++) {
631
60
                RETURN_IF_ERROR(projection.intermediate_projections[i][j]->clone(
632
60
                        state, _intermediate_projections[i][j]));
633
60
            }
634
8
        }
635
372
    }
636
636
    return Status::OK();
637
636
}
_ZN5doris19PipelineXLocalStateINS_14AggSharedStateEE4openEPNS_12RuntimeStateE
Line
Count
Source
616
3.58k
Status PipelineXLocalState<SharedStateArg>::open(RuntimeState* state) {
617
3.58k
    _conjuncts.resize(_parent->_conjuncts.size());
618
3.63k
    for (size_t i = 0; i < _conjuncts.size(); i++) {
619
57
        RETURN_IF_ERROR(_parent->_conjuncts[i]->clone(state, _conjuncts[i]));
620
57
    }
621
3.58k
    if (_parent->has_projection()) {
622
653
        const auto& projection = *_parent->_projection;
623
653
        _projections.resize(projection.projections.size());
624
4.75k
        for (size_t i = 0; i < _projections.size(); i++) {
625
4.10k
            RETURN_IF_ERROR(projection.projections[i]->clone(state, _projections[i]));
626
4.10k
        }
627
653
        _intermediate_projections.resize(projection.intermediate_projections.size());
628
653
        for (int i = 0; i < projection.intermediate_projections.size(); i++) {
629
0
            _intermediate_projections[i].resize(projection.intermediate_projections[i].size());
630
0
            for (int j = 0; j < projection.intermediate_projections[i].size(); j++) {
631
0
                RETURN_IF_ERROR(projection.intermediate_projections[i][j]->clone(
632
0
                        state, _intermediate_projections[i][j]));
633
0
            }
634
0
        }
635
653
    }
636
3.58k
    return Status::OK();
637
3.58k
}
_ZN5doris19PipelineXLocalStateINS_22BucketedAggSharedStateEE4openEPNS_12RuntimeStateE
Line
Count
Source
616
6
Status PipelineXLocalState<SharedStateArg>::open(RuntimeState* state) {
617
6
    _conjuncts.resize(_parent->_conjuncts.size());
618
7
    for (size_t i = 0; i < _conjuncts.size(); i++) {
619
1
        RETURN_IF_ERROR(_parent->_conjuncts[i]->clone(state, _conjuncts[i]));
620
1
    }
621
6
    if (_parent->has_projection()) {
622
1
        const auto& projection = *_parent->_projection;
623
1
        _projections.resize(projection.projections.size());
624
2
        for (size_t i = 0; i < _projections.size(); i++) {
625
1
            RETURN_IF_ERROR(projection.projections[i]->clone(state, _projections[i]));
626
1
        }
627
1
        _intermediate_projections.resize(projection.intermediate_projections.size());
628
1
        for (int i = 0; i < projection.intermediate_projections.size(); i++) {
629
0
            _intermediate_projections[i].resize(projection.intermediate_projections[i].size());
630
0
            for (int j = 0; j < projection.intermediate_projections[i].size(); j++) {
631
0
                RETURN_IF_ERROR(projection.intermediate_projections[i][j]->clone(
632
0
                        state, _intermediate_projections[i][j]));
633
0
            }
634
0
        }
635
1
    }
636
6
    return Status::OK();
637
6
}
_ZN5doris19PipelineXLocalStateINS_25PartitionedAggSharedStateEE4openEPNS_12RuntimeStateE
Line
Count
Source
616
32
Status PipelineXLocalState<SharedStateArg>::open(RuntimeState* state) {
617
32
    _conjuncts.resize(_parent->_conjuncts.size());
618
32
    for (size_t i = 0; i < _conjuncts.size(); i++) {
619
0
        RETURN_IF_ERROR(_parent->_conjuncts[i]->clone(state, _conjuncts[i]));
620
0
    }
621
32
    if (_parent->has_projection()) {
622
18
        const auto& projection = *_parent->_projection;
623
18
        _projections.resize(projection.projections.size());
624
54
        for (size_t i = 0; i < _projections.size(); i++) {
625
36
            RETURN_IF_ERROR(projection.projections[i]->clone(state, _projections[i]));
626
36
        }
627
18
        _intermediate_projections.resize(projection.intermediate_projections.size());
628
18
        for (int i = 0; i < projection.intermediate_projections.size(); i++) {
629
0
            _intermediate_projections[i].resize(projection.intermediate_projections[i].size());
630
0
            for (int j = 0; j < projection.intermediate_projections[i].size(); j++) {
631
0
                RETURN_IF_ERROR(projection.intermediate_projections[i][j]->clone(
632
0
                        state, _intermediate_projections[i][j]));
633
0
            }
634
0
        }
635
18
    }
636
32
    return Status::OK();
637
32
}
_ZN5doris19PipelineXLocalStateINS_15FakeSharedStateEE4openEPNS_12RuntimeStateE
Line
Count
Source
616
18.4k
Status PipelineXLocalState<SharedStateArg>::open(RuntimeState* state) {
617
18.4k
    _conjuncts.resize(_parent->_conjuncts.size());
618
43.7k
    for (size_t i = 0; i < _conjuncts.size(); i++) {
619
25.2k
        RETURN_IF_ERROR(_parent->_conjuncts[i]->clone(state, _conjuncts[i]));
620
25.2k
    }
621
18.4k
    if (_parent->has_projection()) {
622
11.6k
        const auto& projection = *_parent->_projection;
623
11.6k
        _projections.resize(projection.projections.size());
624
109k
        for (size_t i = 0; i < _projections.size(); i++) {
625
98.0k
            RETURN_IF_ERROR(projection.projections[i]->clone(state, _projections[i]));
626
98.0k
        }
627
11.6k
        _intermediate_projections.resize(projection.intermediate_projections.size());
628
11.7k
        for (int i = 0; i < projection.intermediate_projections.size(); i++) {
629
63
            _intermediate_projections[i].resize(projection.intermediate_projections[i].size());
630
387
            for (int j = 0; j < projection.intermediate_projections[i].size(); j++) {
631
324
                RETURN_IF_ERROR(projection.intermediate_projections[i][j]->clone(
632
324
                        state, _intermediate_projections[i][j]));
633
324
            }
634
63
        }
635
11.6k
    }
636
18.4k
    return Status::OK();
637
18.4k
}
_ZN5doris19PipelineXLocalStateINS_16UnionSharedStateEE4openEPNS_12RuntimeStateE
Line
Count
Source
616
2.69k
Status PipelineXLocalState<SharedStateArg>::open(RuntimeState* state) {
617
2.69k
    _conjuncts.resize(_parent->_conjuncts.size());
618
2.69k
    for (size_t i = 0; i < _conjuncts.size(); i++) {
619
0
        RETURN_IF_ERROR(_parent->_conjuncts[i]->clone(state, _conjuncts[i]));
620
0
    }
621
2.69k
    if (_parent->has_projection()) {
622
546
        const auto& projection = *_parent->_projection;
623
546
        _projections.resize(projection.projections.size());
624
5.68k
        for (size_t i = 0; i < _projections.size(); i++) {
625
5.13k
            RETURN_IF_ERROR(projection.projections[i]->clone(state, _projections[i]));
626
5.13k
        }
627
546
        _intermediate_projections.resize(projection.intermediate_projections.size());
628
546
        for (int i = 0; i < projection.intermediate_projections.size(); i++) {
629
0
            _intermediate_projections[i].resize(projection.intermediate_projections[i].size());
630
0
            for (int j = 0; j < projection.intermediate_projections[i].size(); j++) {
631
0
                RETURN_IF_ERROR(projection.intermediate_projections[i][j]->clone(
632
0
                        state, _intermediate_projections[i][j]));
633
0
            }
634
0
        }
635
546
    }
636
2.69k
    return Status::OK();
637
2.69k
}
_ZN5doris19PipelineXLocalStateINS_20DataQueueSharedStateEE4openEPNS_12RuntimeStateE
Line
Count
Source
616
11
Status PipelineXLocalState<SharedStateArg>::open(RuntimeState* state) {
617
11
    _conjuncts.resize(_parent->_conjuncts.size());
618
11
    for (size_t i = 0; i < _conjuncts.size(); i++) {
619
0
        RETURN_IF_ERROR(_parent->_conjuncts[i]->clone(state, _conjuncts[i]));
620
0
    }
621
11
    if (_parent->has_projection()) {
622
0
        const auto& projection = *_parent->_projection;
623
0
        _projections.resize(projection.projections.size());
624
0
        for (size_t i = 0; i < _projections.size(); i++) {
625
0
            RETURN_IF_ERROR(projection.projections[i]->clone(state, _projections[i]));
626
0
        }
627
0
        _intermediate_projections.resize(projection.intermediate_projections.size());
628
0
        for (int i = 0; i < projection.intermediate_projections.size(); i++) {
629
0
            _intermediate_projections[i].resize(projection.intermediate_projections[i].size());
630
0
            for (int j = 0; j < projection.intermediate_projections[i].size(); j++) {
631
0
                RETURN_IF_ERROR(projection.intermediate_projections[i][j]->clone(
632
0
                        state, _intermediate_projections[i][j]));
633
0
            }
634
0
        }
635
0
    }
636
11
    return Status::OK();
637
11
}
_ZN5doris19PipelineXLocalStateINS_20MultiCastSharedStateEE4openEPNS_12RuntimeStateE
Line
Count
Source
616
203
Status PipelineXLocalState<SharedStateArg>::open(RuntimeState* state) {
617
203
    _conjuncts.resize(_parent->_conjuncts.size());
618
265
    for (size_t i = 0; i < _conjuncts.size(); i++) {
619
62
        RETURN_IF_ERROR(_parent->_conjuncts[i]->clone(state, _conjuncts[i]));
620
62
    }
621
203
    if (_parent->has_projection()) {
622
0
        const auto& projection = *_parent->_projection;
623
0
        _projections.resize(projection.projections.size());
624
0
        for (size_t i = 0; i < _projections.size(); i++) {
625
0
            RETURN_IF_ERROR(projection.projections[i]->clone(state, _projections[i]));
626
0
        }
627
0
        _intermediate_projections.resize(projection.intermediate_projections.size());
628
0
        for (int i = 0; i < projection.intermediate_projections.size(); i++) {
629
0
            _intermediate_projections[i].resize(projection.intermediate_projections[i].size());
630
0
            for (int j = 0; j < projection.intermediate_projections[i].size(); j++) {
631
0
                RETURN_IF_ERROR(projection.intermediate_projections[i][j]->clone(
632
0
                        state, _intermediate_projections[i][j]));
633
0
            }
634
0
        }
635
0
    }
636
203
    return Status::OK();
637
203
}
_ZN5doris19PipelineXLocalStateINS_28PartitionSortNodeSharedStateEE4openEPNS_12RuntimeStateE
Line
Count
Source
616
112
Status PipelineXLocalState<SharedStateArg>::open(RuntimeState* state) {
617
112
    _conjuncts.resize(_parent->_conjuncts.size());
618
112
    for (size_t i = 0; i < _conjuncts.size(); i++) {
619
0
        RETURN_IF_ERROR(_parent->_conjuncts[i]->clone(state, _conjuncts[i]));
620
0
    }
621
112
    if (_parent->has_projection()) {
622
0
        const auto& projection = *_parent->_projection;
623
0
        _projections.resize(projection.projections.size());
624
0
        for (size_t i = 0; i < _projections.size(); i++) {
625
0
            RETURN_IF_ERROR(projection.projections[i]->clone(state, _projections[i]));
626
0
        }
627
0
        _intermediate_projections.resize(projection.intermediate_projections.size());
628
0
        for (int i = 0; i < projection.intermediate_projections.size(); i++) {
629
0
            _intermediate_projections[i].resize(projection.intermediate_projections[i].size());
630
0
            for (int j = 0; j < projection.intermediate_projections[i].size(); j++) {
631
0
                RETURN_IF_ERROR(projection.intermediate_projections[i][j]->clone(
632
0
                        state, _intermediate_projections[i][j]));
633
0
            }
634
0
        }
635
0
    }
636
112
    return Status::OK();
637
112
}
_ZN5doris19PipelineXLocalStateINS_14SetSharedStateEE4openEPNS_12RuntimeStateE
Line
Count
Source
616
46
Status PipelineXLocalState<SharedStateArg>::open(RuntimeState* state) {
617
46
    _conjuncts.resize(_parent->_conjuncts.size());
618
46
    for (size_t i = 0; i < _conjuncts.size(); i++) {
619
0
        RETURN_IF_ERROR(_parent->_conjuncts[i]->clone(state, _conjuncts[i]));
620
0
    }
621
46
    if (_parent->has_projection()) {
622
0
        const auto& projection = *_parent->_projection;
623
0
        _projections.resize(projection.projections.size());
624
0
        for (size_t i = 0; i < _projections.size(); i++) {
625
0
            RETURN_IF_ERROR(projection.projections[i]->clone(state, _projections[i]));
626
0
        }
627
0
        _intermediate_projections.resize(projection.intermediate_projections.size());
628
0
        for (int i = 0; i < projection.intermediate_projections.size(); i++) {
629
0
            _intermediate_projections[i].resize(projection.intermediate_projections[i].size());
630
0
            for (int j = 0; j < projection.intermediate_projections[i].size(); j++) {
631
0
                RETURN_IF_ERROR(projection.intermediate_projections[i][j]->clone(
632
0
                        state, _intermediate_projections[i][j]));
633
0
            }
634
0
        }
635
0
    }
636
46
    return Status::OK();
637
46
}
_ZN5doris19PipelineXLocalStateINS_24LocalExchangeSharedStateEE4openEPNS_12RuntimeStateE
Line
Count
Source
616
12.1k
Status PipelineXLocalState<SharedStateArg>::open(RuntimeState* state) {
617
12.1k
    _conjuncts.resize(_parent->_conjuncts.size());
618
12.1k
    for (size_t i = 0; i < _conjuncts.size(); i++) {
619
0
        RETURN_IF_ERROR(_parent->_conjuncts[i]->clone(state, _conjuncts[i]));
620
0
    }
621
12.1k
    if (_parent->has_projection()) {
622
0
        const auto& projection = *_parent->_projection;
623
0
        _projections.resize(projection.projections.size());
624
0
        for (size_t i = 0; i < _projections.size(); i++) {
625
0
            RETURN_IF_ERROR(projection.projections[i]->clone(state, _projections[i]));
626
0
        }
627
0
        _intermediate_projections.resize(projection.intermediate_projections.size());
628
0
        for (int i = 0; i < projection.intermediate_projections.size(); i++) {
629
0
            _intermediate_projections[i].resize(projection.intermediate_projections[i].size());
630
0
            for (int j = 0; j < projection.intermediate_projections[i].size(); j++) {
631
0
                RETURN_IF_ERROR(projection.intermediate_projections[i][j]->clone(
632
0
                        state, _intermediate_projections[i][j]));
633
0
            }
634
0
        }
635
0
    }
636
12.1k
    return Status::OK();
637
12.1k
}
Unexecuted instantiation: _ZN5doris19PipelineXLocalStateINS_16BasicSharedStateEE4openEPNS_12RuntimeStateE
Unexecuted instantiation: _ZN5doris19PipelineXLocalStateINS_17RecCTESharedStateEE4openEPNS_12RuntimeStateE
638
639
template <typename SharedStateArg>
640
256
Status PipelineXLocalState<SharedStateArg>::terminate(RuntimeState* state) {
641
256
    if (_terminated) {
642
0
        return Status::OK();
643
0
    }
644
256
    _terminated = true;
645
256
    return Status::OK();
646
256
}
_ZN5doris19PipelineXLocalStateINS_19HashJoinSharedStateEE9terminateEPNS_12RuntimeStateE
Line
Count
Source
640
36
Status PipelineXLocalState<SharedStateArg>::terminate(RuntimeState* state) {
641
36
    if (_terminated) {
642
0
        return Status::OK();
643
0
    }
644
36
    _terminated = true;
645
36
    return Status::OK();
646
36
}
Unexecuted instantiation: _ZN5doris19PipelineXLocalStateINS_30PartitionedHashJoinSharedStateEE9terminateEPNS_12RuntimeStateE
_ZN5doris19PipelineXLocalStateINS_15SortSharedStateEE9terminateEPNS_12RuntimeStateE
Line
Count
Source
640
13
Status PipelineXLocalState<SharedStateArg>::terminate(RuntimeState* state) {
641
13
    if (_terminated) {
642
0
        return Status::OK();
643
0
    }
644
13
    _terminated = true;
645
13
    return Status::OK();
646
13
}
Unexecuted instantiation: _ZN5doris19PipelineXLocalStateINS_20SpillSortSharedStateEE9terminateEPNS_12RuntimeStateE
_ZN5doris19PipelineXLocalStateINS_25NestedLoopJoinSharedStateEE9terminateEPNS_12RuntimeStateE
Line
Count
Source
640
16
Status PipelineXLocalState<SharedStateArg>::terminate(RuntimeState* state) {
641
16
    if (_terminated) {
642
0
        return Status::OK();
643
0
    }
644
16
    _terminated = true;
645
16
    return Status::OK();
646
16
}
_ZN5doris19PipelineXLocalStateINS_19AnalyticSharedStateEE9terminateEPNS_12RuntimeStateE
Line
Count
Source
640
1
Status PipelineXLocalState<SharedStateArg>::terminate(RuntimeState* state) {
641
1
    if (_terminated) {
642
0
        return Status::OK();
643
0
    }
644
1
    _terminated = true;
645
1
    return Status::OK();
646
1
}
_ZN5doris19PipelineXLocalStateINS_14AggSharedStateEE9terminateEPNS_12RuntimeStateE
Line
Count
Source
640
2
Status PipelineXLocalState<SharedStateArg>::terminate(RuntimeState* state) {
641
2
    if (_terminated) {
642
0
        return Status::OK();
643
0
    }
644
2
    _terminated = true;
645
2
    return Status::OK();
646
2
}
Unexecuted instantiation: _ZN5doris19PipelineXLocalStateINS_22BucketedAggSharedStateEE9terminateEPNS_12RuntimeStateE
Unexecuted instantiation: _ZN5doris19PipelineXLocalStateINS_25PartitionedAggSharedStateEE9terminateEPNS_12RuntimeStateE
_ZN5doris19PipelineXLocalStateINS_15FakeSharedStateEE9terminateEPNS_12RuntimeStateE
Line
Count
Source
640
134
Status PipelineXLocalState<SharedStateArg>::terminate(RuntimeState* state) {
641
134
    if (_terminated) {
642
0
        return Status::OK();
643
0
    }
644
134
    _terminated = true;
645
134
    return Status::OK();
646
134
}
_ZN5doris19PipelineXLocalStateINS_16UnionSharedStateEE9terminateEPNS_12RuntimeStateE
Line
Count
Source
640
2
Status PipelineXLocalState<SharedStateArg>::terminate(RuntimeState* state) {
641
2
    if (_terminated) {
642
0
        return Status::OK();
643
0
    }
644
2
    _terminated = true;
645
2
    return Status::OK();
646
2
}
Unexecuted instantiation: _ZN5doris19PipelineXLocalStateINS_20DataQueueSharedStateEE9terminateEPNS_12RuntimeStateE
Unexecuted instantiation: _ZN5doris19PipelineXLocalStateINS_20MultiCastSharedStateEE9terminateEPNS_12RuntimeStateE
Unexecuted instantiation: _ZN5doris19PipelineXLocalStateINS_28PartitionSortNodeSharedStateEE9terminateEPNS_12RuntimeStateE
Unexecuted instantiation: _ZN5doris19PipelineXLocalStateINS_14SetSharedStateEE9terminateEPNS_12RuntimeStateE
_ZN5doris19PipelineXLocalStateINS_24LocalExchangeSharedStateEE9terminateEPNS_12RuntimeStateE
Line
Count
Source
640
52
Status PipelineXLocalState<SharedStateArg>::terminate(RuntimeState* state) {
641
52
    if (_terminated) {
642
0
        return Status::OK();
643
0
    }
644
52
    _terminated = true;
645
52
    return Status::OK();
646
52
}
Unexecuted instantiation: _ZN5doris19PipelineXLocalStateINS_16BasicSharedStateEE9terminateEPNS_12RuntimeStateE
Unexecuted instantiation: _ZN5doris19PipelineXLocalStateINS_17RecCTESharedStateEE9terminateEPNS_12RuntimeStateE
647
648
template <typename SharedStateArg>
649
81.9k
Status PipelineXLocalState<SharedStateArg>::close(RuntimeState* state) {
650
81.9k
    if (_closed) {
651
9.97k
        return Status::OK();
652
9.97k
    }
653
72.0k
    if constexpr (!std::is_same_v<SharedStateArg, FakeSharedState>) {
654
53.5k
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
655
53.5k
    }
656
72.0k
    _closed = true;
657
72.0k
    return Status::OK();
658
81.9k
}
_ZN5doris19PipelineXLocalStateINS_19HashJoinSharedStateEE5closeEPNS_12RuntimeStateE
Line
Count
Source
649
25.2k
Status PipelineXLocalState<SharedStateArg>::close(RuntimeState* state) {
650
25.2k
    if (_closed) {
651
0
        return Status::OK();
652
0
    }
653
25.2k
    if constexpr (!std::is_same_v<SharedStateArg, FakeSharedState>) {
654
25.2k
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
655
25.2k
    }
656
25.2k
    _closed = true;
657
25.2k
    return Status::OK();
658
25.2k
}
_ZN5doris19PipelineXLocalStateINS_30PartitionedHashJoinSharedStateEE5closeEPNS_12RuntimeStateE
Line
Count
Source
649
4
Status PipelineXLocalState<SharedStateArg>::close(RuntimeState* state) {
650
4
    if (_closed) {
651
0
        return Status::OK();
652
0
    }
653
4
    if constexpr (!std::is_same_v<SharedStateArg, FakeSharedState>) {
654
4
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
655
4
    }
656
4
    _closed = true;
657
4
    return Status::OK();
658
4
}
_ZN5doris19PipelineXLocalStateINS_15SortSharedStateEE5closeEPNS_12RuntimeStateE
Line
Count
Source
649
17.2k
Status PipelineXLocalState<SharedStateArg>::close(RuntimeState* state) {
650
17.2k
    if (_closed) {
651
8.58k
        return Status::OK();
652
8.58k
    }
653
8.66k
    if constexpr (!std::is_same_v<SharedStateArg, FakeSharedState>) {
654
8.66k
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
655
8.66k
    }
656
8.66k
    _closed = true;
657
8.66k
    return Status::OK();
658
17.2k
}
_ZN5doris19PipelineXLocalStateINS_20SpillSortSharedStateEE5closeEPNS_12RuntimeStateE
Line
Count
Source
649
13
Status PipelineXLocalState<SharedStateArg>::close(RuntimeState* state) {
650
13
    if (_closed) {
651
0
        return Status::OK();
652
0
    }
653
13
    if constexpr (!std::is_same_v<SharedStateArg, FakeSharedState>) {
654
13
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
655
13
    }
656
13
    _closed = true;
657
13
    return Status::OK();
658
13
}
_ZN5doris19PipelineXLocalStateINS_25NestedLoopJoinSharedStateEE5closeEPNS_12RuntimeStateE
Line
Count
Source
649
283
Status PipelineXLocalState<SharedStateArg>::close(RuntimeState* state) {
650
283
    if (_closed) {
651
0
        return Status::OK();
652
0
    }
653
283
    if constexpr (!std::is_same_v<SharedStateArg, FakeSharedState>) {
654
283
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
655
283
    }
656
283
    _closed = true;
657
283
    return Status::OK();
658
283
}
_ZN5doris19PipelineXLocalStateINS_19AnalyticSharedStateEE5closeEPNS_12RuntimeStateE
Line
Count
Source
649
1.26k
Status PipelineXLocalState<SharedStateArg>::close(RuntimeState* state) {
650
1.26k
    if (_closed) {
651
640
        return Status::OK();
652
640
    }
653
624
    if constexpr (!std::is_same_v<SharedStateArg, FakeSharedState>) {
654
624
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
655
624
    }
656
624
    _closed = true;
657
624
    return Status::OK();
658
1.26k
}
_ZN5doris19PipelineXLocalStateINS_14AggSharedStateEE5closeEPNS_12RuntimeStateE
Line
Count
Source
649
3.52k
Status PipelineXLocalState<SharedStateArg>::close(RuntimeState* state) {
650
3.52k
    if (_closed) {
651
0
        return Status::OK();
652
0
    }
653
3.52k
    if constexpr (!std::is_same_v<SharedStateArg, FakeSharedState>) {
654
3.52k
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
655
3.52k
    }
656
3.52k
    _closed = true;
657
3.52k
    return Status::OK();
658
3.52k
}
_ZN5doris19PipelineXLocalStateINS_22BucketedAggSharedStateEE5closeEPNS_12RuntimeStateE
Line
Count
Source
649
6
Status PipelineXLocalState<SharedStateArg>::close(RuntimeState* state) {
650
6
    if (_closed) {
651
0
        return Status::OK();
652
0
    }
653
6
    if constexpr (!std::is_same_v<SharedStateArg, FakeSharedState>) {
654
6
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
655
6
    }
656
6
    _closed = true;
657
6
    return Status::OK();
658
6
}
_ZN5doris19PipelineXLocalStateINS_25PartitionedAggSharedStateEE5closeEPNS_12RuntimeStateE
Line
Count
Source
649
27
Status PipelineXLocalState<SharedStateArg>::close(RuntimeState* state) {
650
27
    if (_closed) {
651
0
        return Status::OK();
652
0
    }
653
27
    if constexpr (!std::is_same_v<SharedStateArg, FakeSharedState>) {
654
27
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
655
27
    }
656
27
    _closed = true;
657
27
    return Status::OK();
658
27
}
_ZN5doris19PipelineXLocalStateINS_15FakeSharedStateEE5closeEPNS_12RuntimeStateE
Line
Count
Source
649
19.2k
Status PipelineXLocalState<SharedStateArg>::close(RuntimeState* state) {
650
19.2k
    if (_closed) {
651
710
        return Status::OK();
652
710
    }
653
    if constexpr (!std::is_same_v<SharedStateArg, FakeSharedState>) {
654
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
655
    }
656
18.4k
    _closed = true;
657
18.4k
    return Status::OK();
658
19.2k
}
_ZN5doris19PipelineXLocalStateINS_16UnionSharedStateEE5closeEPNS_12RuntimeStateE
Line
Count
Source
649
2.68k
Status PipelineXLocalState<SharedStateArg>::close(RuntimeState* state) {
650
2.68k
    if (_closed) {
651
0
        return Status::OK();
652
0
    }
653
2.68k
    if constexpr (!std::is_same_v<SharedStateArg, FakeSharedState>) {
654
2.68k
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
655
2.68k
    }
656
2.68k
    _closed = true;
657
2.68k
    return Status::OK();
658
2.68k
}
Unexecuted instantiation: _ZN5doris19PipelineXLocalStateINS_20DataQueueSharedStateEE5closeEPNS_12RuntimeStateE
_ZN5doris19PipelineXLocalStateINS_20MultiCastSharedStateEE5closeEPNS_12RuntimeStateE
Line
Count
Source
649
203
Status PipelineXLocalState<SharedStateArg>::close(RuntimeState* state) {
650
203
    if (_closed) {
651
0
        return Status::OK();
652
0
    }
653
203
    if constexpr (!std::is_same_v<SharedStateArg, FakeSharedState>) {
654
203
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
655
203
    }
656
203
    _closed = true;
657
203
    return Status::OK();
658
203
}
_ZN5doris19PipelineXLocalStateINS_28PartitionSortNodeSharedStateEE5closeEPNS_12RuntimeStateE
Line
Count
Source
649
20
Status PipelineXLocalState<SharedStateArg>::close(RuntimeState* state) {
650
20
    if (_closed) {
651
10
        return Status::OK();
652
10
    }
653
10
    if constexpr (!std::is_same_v<SharedStateArg, FakeSharedState>) {
654
10
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
655
10
    }
656
10
    _closed = true;
657
10
    return Status::OK();
658
20
}
_ZN5doris19PipelineXLocalStateINS_14SetSharedStateEE5closeEPNS_12RuntimeStateE
Line
Count
Source
649
66
Status PipelineXLocalState<SharedStateArg>::close(RuntimeState* state) {
650
66
    if (_closed) {
651
33
        return Status::OK();
652
33
    }
653
33
    if constexpr (!std::is_same_v<SharedStateArg, FakeSharedState>) {
654
33
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
655
33
    }
656
33
    _closed = true;
657
33
    return Status::OK();
658
66
}
_ZN5doris19PipelineXLocalStateINS_24LocalExchangeSharedStateEE5closeEPNS_12RuntimeStateE
Line
Count
Source
649
12.1k
Status PipelineXLocalState<SharedStateArg>::close(RuntimeState* state) {
650
12.1k
    if (_closed) {
651
0
        return Status::OK();
652
0
    }
653
12.1k
    if constexpr (!std::is_same_v<SharedStateArg, FakeSharedState>) {
654
12.1k
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
655
12.1k
    }
656
12.1k
    _closed = true;
657
12.1k
    return Status::OK();
658
12.1k
}
Unexecuted instantiation: _ZN5doris19PipelineXLocalStateINS_16BasicSharedStateEE5closeEPNS_12RuntimeStateE
Unexecuted instantiation: _ZN5doris19PipelineXLocalStateINS_17RecCTESharedStateEE5closeEPNS_12RuntimeStateE
659
660
template <typename SharedState>
661
117k
Status PipelineXSinkLocalState<SharedState>::init(RuntimeState* state, LocalSinkStateInfo& info) {
662
    // create profile
663
117k
    _operator_profile =
664
117k
            state->obj_pool()->add(new RuntimeProfile(_parent->get_name() + name_suffix()));
665
117k
    _common_profile = state->obj_pool()->add(new RuntimeProfile(profile::COMMON_COUNTERS));
666
117k
    _custom_profile = state->obj_pool()->add(new RuntimeProfile(profile::CUSTOM_COUNTERS));
667
668
    // indentation is true
669
    // The parent profile of sink operator is usually a RuntimeProfile called PipelineTask.
670
    // So we should set the indentation to true.
671
117k
    info.parent_profile->add_child(_operator_profile, /*indent=*/true);
672
117k
    _operator_profile->add_child(_common_profile, true);
673
117k
    _operator_profile->add_child(_custom_profile, true);
674
675
117k
    _operator_profile->set_metadata(_parent->node_id());
676
117k
    _wait_for_finish_dependency_timer =
677
117k
            ADD_TIMER(_common_profile, profile::PENDING_FINISH_DEPENDENCY);
678
117k
    constexpr auto is_fake_shared = std::is_same_v<SharedState, FakeSharedState>;
679
117k
    if constexpr (!is_fake_shared) {
680
104k
        if (info.shared_state_map.find(_parent->dests_id().front()) !=
681
104k
            info.shared_state_map.end()) {
682
6.43k
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
683
5.82k
                DCHECK(info.shared_state_map.at(_parent->dests_id().front()).second.size() == 1);
684
5.82k
            }
685
6.43k
            _dependency = info.shared_state_map.at(_parent->dests_id().front())
686
6.43k
                                  .second[std::is_same_v<LocalExchangeSharedState, SharedState>
687
6.43k
                                                  ? 0
688
6.43k
                                                  : info.task_idx]
689
6.43k
                                  .get();
690
6.43k
            _shared_state = _dependency->shared_state()->template cast<SharedState>();
691
97.8k
        } else {
692
97.8k
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
693
2
                DCHECK(false);
694
2
            }
695
97.8k
            _shared_state = info.shared_state->template cast<SharedState>();
696
97.8k
            _dependency = _shared_state->create_sink_dependency(
697
97.8k
                    _parent->dests_id().front(), _parent->node_id(), _parent->get_name());
698
97.8k
        }
699
104k
        _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
700
104k
                _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
701
104k
    }
702
703
117k
    if (must_set_shared_state() && _shared_state == nullptr) {
704
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
705
0
    }
706
707
117k
    _rows_input_counter =
708
117k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::INPUT_ROWS, TUnit::UNIT, 1);
709
117k
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
710
117k
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
711
117k
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
712
117k
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
713
117k
    _memory_used_counter =
714
117k
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
715
117k
    _common_profile->add_info_string("IsColocate",
716
117k
                                     std::to_string(_parent->is_colocated_operator()));
717
117k
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
718
117k
    _common_profile->add_info_string("FollowedByShuffledOperator",
719
117k
                                     std::to_string(_parent->followed_by_shuffled_operator()));
720
117k
    return Status::OK();
721
117k
}
_ZN5doris23PipelineXSinkLocalStateINS_19HashJoinSharedStateEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
661
73.3k
Status PipelineXSinkLocalState<SharedState>::init(RuntimeState* state, LocalSinkStateInfo& info) {
662
    // create profile
663
73.3k
    _operator_profile =
664
73.3k
            state->obj_pool()->add(new RuntimeProfile(_parent->get_name() + name_suffix()));
665
73.3k
    _common_profile = state->obj_pool()->add(new RuntimeProfile(profile::COMMON_COUNTERS));
666
73.3k
    _custom_profile = state->obj_pool()->add(new RuntimeProfile(profile::CUSTOM_COUNTERS));
667
668
    // indentation is true
669
    // The parent profile of sink operator is usually a RuntimeProfile called PipelineTask.
670
    // So we should set the indentation to true.
671
73.3k
    info.parent_profile->add_child(_operator_profile, /*indent=*/true);
672
73.3k
    _operator_profile->add_child(_common_profile, true);
673
73.3k
    _operator_profile->add_child(_custom_profile, true);
674
675
73.3k
    _operator_profile->set_metadata(_parent->node_id());
676
73.3k
    _wait_for_finish_dependency_timer =
677
73.3k
            ADD_TIMER(_common_profile, profile::PENDING_FINISH_DEPENDENCY);
678
73.3k
    constexpr auto is_fake_shared = std::is_same_v<SharedState, FakeSharedState>;
679
73.3k
    if constexpr (!is_fake_shared) {
680
73.3k
        if (info.shared_state_map.find(_parent->dests_id().front()) !=
681
73.3k
            info.shared_state_map.end()) {
682
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
683
                DCHECK(info.shared_state_map.at(_parent->dests_id().front()).second.size() == 1);
684
            }
685
605
            _dependency = info.shared_state_map.at(_parent->dests_id().front())
686
605
                                  .second[std::is_same_v<LocalExchangeSharedState, SharedState>
687
605
                                                  ? 0
688
605
                                                  : info.task_idx]
689
605
                                  .get();
690
605
            _shared_state = _dependency->shared_state()->template cast<SharedState>();
691
72.7k
        } else {
692
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
693
                DCHECK(false);
694
            }
695
72.7k
            _shared_state = info.shared_state->template cast<SharedState>();
696
72.7k
            _dependency = _shared_state->create_sink_dependency(
697
72.7k
                    _parent->dests_id().front(), _parent->node_id(), _parent->get_name());
698
72.7k
        }
699
73.3k
        _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
700
73.3k
                _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
701
73.3k
    }
702
703
73.3k
    if (must_set_shared_state() && _shared_state == nullptr) {
704
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
705
0
    }
706
707
73.3k
    _rows_input_counter =
708
73.3k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::INPUT_ROWS, TUnit::UNIT, 1);
709
73.3k
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
710
73.3k
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
711
73.3k
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
712
73.3k
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
713
73.3k
    _memory_used_counter =
714
73.3k
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
715
73.3k
    _common_profile->add_info_string("IsColocate",
716
73.3k
                                     std::to_string(_parent->is_colocated_operator()));
717
73.3k
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
718
73.3k
    _common_profile->add_info_string("FollowedByShuffledOperator",
719
73.3k
                                     std::to_string(_parent->followed_by_shuffled_operator()));
720
73.3k
    return Status::OK();
721
73.3k
}
_ZN5doris23PipelineXSinkLocalStateINS_30PartitionedHashJoinSharedStateEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
661
2
Status PipelineXSinkLocalState<SharedState>::init(RuntimeState* state, LocalSinkStateInfo& info) {
662
    // create profile
663
2
    _operator_profile =
664
2
            state->obj_pool()->add(new RuntimeProfile(_parent->get_name() + name_suffix()));
665
2
    _common_profile = state->obj_pool()->add(new RuntimeProfile(profile::COMMON_COUNTERS));
666
2
    _custom_profile = state->obj_pool()->add(new RuntimeProfile(profile::CUSTOM_COUNTERS));
667
668
    // indentation is true
669
    // The parent profile of sink operator is usually a RuntimeProfile called PipelineTask.
670
    // So we should set the indentation to true.
671
2
    info.parent_profile->add_child(_operator_profile, /*indent=*/true);
672
2
    _operator_profile->add_child(_common_profile, true);
673
2
    _operator_profile->add_child(_custom_profile, true);
674
675
2
    _operator_profile->set_metadata(_parent->node_id());
676
2
    _wait_for_finish_dependency_timer =
677
2
            ADD_TIMER(_common_profile, profile::PENDING_FINISH_DEPENDENCY);
678
2
    constexpr auto is_fake_shared = std::is_same_v<SharedState, FakeSharedState>;
679
2
    if constexpr (!is_fake_shared) {
680
2
        if (info.shared_state_map.find(_parent->dests_id().front()) !=
681
2
            info.shared_state_map.end()) {
682
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
683
                DCHECK(info.shared_state_map.at(_parent->dests_id().front()).second.size() == 1);
684
            }
685
0
            _dependency = info.shared_state_map.at(_parent->dests_id().front())
686
0
                                  .second[std::is_same_v<LocalExchangeSharedState, SharedState>
687
0
                                                  ? 0
688
0
                                                  : info.task_idx]
689
0
                                  .get();
690
0
            _shared_state = _dependency->shared_state()->template cast<SharedState>();
691
2
        } else {
692
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
693
                DCHECK(false);
694
            }
695
2
            _shared_state = info.shared_state->template cast<SharedState>();
696
2
            _dependency = _shared_state->create_sink_dependency(
697
2
                    _parent->dests_id().front(), _parent->node_id(), _parent->get_name());
698
2
        }
699
2
        _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
700
2
                _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
701
2
    }
702
703
2
    if (must_set_shared_state() && _shared_state == nullptr) {
704
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
705
0
    }
706
707
2
    _rows_input_counter =
708
2
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::INPUT_ROWS, TUnit::UNIT, 1);
709
2
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
710
2
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
711
2
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
712
2
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
713
2
    _memory_used_counter =
714
2
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
715
2
    _common_profile->add_info_string("IsColocate",
716
2
                                     std::to_string(_parent->is_colocated_operator()));
717
2
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
718
2
    _common_profile->add_info_string("FollowedByShuffledOperator",
719
2
                                     std::to_string(_parent->followed_by_shuffled_operator()));
720
2
    return Status::OK();
721
2
}
_ZN5doris23PipelineXSinkLocalStateINS_15SortSharedStateEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
661
8.71k
Status PipelineXSinkLocalState<SharedState>::init(RuntimeState* state, LocalSinkStateInfo& info) {
662
    // create profile
663
8.71k
    _operator_profile =
664
8.71k
            state->obj_pool()->add(new RuntimeProfile(_parent->get_name() + name_suffix()));
665
8.71k
    _common_profile = state->obj_pool()->add(new RuntimeProfile(profile::COMMON_COUNTERS));
666
8.71k
    _custom_profile = state->obj_pool()->add(new RuntimeProfile(profile::CUSTOM_COUNTERS));
667
668
    // indentation is true
669
    // The parent profile of sink operator is usually a RuntimeProfile called PipelineTask.
670
    // So we should set the indentation to true.
671
8.71k
    info.parent_profile->add_child(_operator_profile, /*indent=*/true);
672
8.71k
    _operator_profile->add_child(_common_profile, true);
673
8.71k
    _operator_profile->add_child(_custom_profile, true);
674
675
8.71k
    _operator_profile->set_metadata(_parent->node_id());
676
8.71k
    _wait_for_finish_dependency_timer =
677
8.71k
            ADD_TIMER(_common_profile, profile::PENDING_FINISH_DEPENDENCY);
678
8.71k
    constexpr auto is_fake_shared = std::is_same_v<SharedState, FakeSharedState>;
679
8.71k
    if constexpr (!is_fake_shared) {
680
8.71k
        if (info.shared_state_map.find(_parent->dests_id().front()) !=
681
8.71k
            info.shared_state_map.end()) {
682
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
683
                DCHECK(info.shared_state_map.at(_parent->dests_id().front()).second.size() == 1);
684
            }
685
0
            _dependency = info.shared_state_map.at(_parent->dests_id().front())
686
0
                                  .second[std::is_same_v<LocalExchangeSharedState, SharedState>
687
0
                                                  ? 0
688
0
                                                  : info.task_idx]
689
0
                                  .get();
690
0
            _shared_state = _dependency->shared_state()->template cast<SharedState>();
691
8.71k
        } else {
692
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
693
                DCHECK(false);
694
            }
695
8.71k
            _shared_state = info.shared_state->template cast<SharedState>();
696
8.71k
            _dependency = _shared_state->create_sink_dependency(
697
8.71k
                    _parent->dests_id().front(), _parent->node_id(), _parent->get_name());
698
8.71k
        }
699
8.71k
        _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
700
8.71k
                _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
701
8.71k
    }
702
703
8.71k
    if (must_set_shared_state() && _shared_state == nullptr) {
704
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
705
0
    }
706
707
8.71k
    _rows_input_counter =
708
8.71k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::INPUT_ROWS, TUnit::UNIT, 1);
709
8.71k
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
710
8.71k
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
711
8.71k
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
712
8.71k
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
713
8.71k
    _memory_used_counter =
714
8.71k
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
715
8.71k
    _common_profile->add_info_string("IsColocate",
716
8.71k
                                     std::to_string(_parent->is_colocated_operator()));
717
8.71k
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
718
8.71k
    _common_profile->add_info_string("FollowedByShuffledOperator",
719
8.71k
                                     std::to_string(_parent->followed_by_shuffled_operator()));
720
8.71k
    return Status::OK();
721
8.71k
}
_ZN5doris23PipelineXSinkLocalStateINS_20SpillSortSharedStateEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
661
20
Status PipelineXSinkLocalState<SharedState>::init(RuntimeState* state, LocalSinkStateInfo& info) {
662
    // create profile
663
20
    _operator_profile =
664
20
            state->obj_pool()->add(new RuntimeProfile(_parent->get_name() + name_suffix()));
665
20
    _common_profile = state->obj_pool()->add(new RuntimeProfile(profile::COMMON_COUNTERS));
666
20
    _custom_profile = state->obj_pool()->add(new RuntimeProfile(profile::CUSTOM_COUNTERS));
667
668
    // indentation is true
669
    // The parent profile of sink operator is usually a RuntimeProfile called PipelineTask.
670
    // So we should set the indentation to true.
671
20
    info.parent_profile->add_child(_operator_profile, /*indent=*/true);
672
20
    _operator_profile->add_child(_common_profile, true);
673
20
    _operator_profile->add_child(_custom_profile, true);
674
675
20
    _operator_profile->set_metadata(_parent->node_id());
676
20
    _wait_for_finish_dependency_timer =
677
20
            ADD_TIMER(_common_profile, profile::PENDING_FINISH_DEPENDENCY);
678
20
    constexpr auto is_fake_shared = std::is_same_v<SharedState, FakeSharedState>;
679
20
    if constexpr (!is_fake_shared) {
680
20
        if (info.shared_state_map.find(_parent->dests_id().front()) !=
681
20
            info.shared_state_map.end()) {
682
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
683
                DCHECK(info.shared_state_map.at(_parent->dests_id().front()).second.size() == 1);
684
            }
685
0
            _dependency = info.shared_state_map.at(_parent->dests_id().front())
686
0
                                  .second[std::is_same_v<LocalExchangeSharedState, SharedState>
687
0
                                                  ? 0
688
0
                                                  : info.task_idx]
689
0
                                  .get();
690
0
            _shared_state = _dependency->shared_state()->template cast<SharedState>();
691
20
        } else {
692
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
693
                DCHECK(false);
694
            }
695
20
            _shared_state = info.shared_state->template cast<SharedState>();
696
20
            _dependency = _shared_state->create_sink_dependency(
697
20
                    _parent->dests_id().front(), _parent->node_id(), _parent->get_name());
698
20
        }
699
20
        _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
700
20
                _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
701
20
    }
702
703
20
    if (must_set_shared_state() && _shared_state == nullptr) {
704
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
705
0
    }
706
707
20
    _rows_input_counter =
708
20
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::INPUT_ROWS, TUnit::UNIT, 1);
709
20
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
710
20
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
711
20
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
712
20
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
713
20
    _memory_used_counter =
714
20
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
715
20
    _common_profile->add_info_string("IsColocate",
716
20
                                     std::to_string(_parent->is_colocated_operator()));
717
20
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
718
20
    _common_profile->add_info_string("FollowedByShuffledOperator",
719
20
                                     std::to_string(_parent->followed_by_shuffled_operator()));
720
20
    return Status::OK();
721
20
}
_ZN5doris23PipelineXSinkLocalStateINS_25NestedLoopJoinSharedStateEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
661
284
Status PipelineXSinkLocalState<SharedState>::init(RuntimeState* state, LocalSinkStateInfo& info) {
662
    // create profile
663
284
    _operator_profile =
664
284
            state->obj_pool()->add(new RuntimeProfile(_parent->get_name() + name_suffix()));
665
284
    _common_profile = state->obj_pool()->add(new RuntimeProfile(profile::COMMON_COUNTERS));
666
284
    _custom_profile = state->obj_pool()->add(new RuntimeProfile(profile::CUSTOM_COUNTERS));
667
668
    // indentation is true
669
    // The parent profile of sink operator is usually a RuntimeProfile called PipelineTask.
670
    // So we should set the indentation to true.
671
284
    info.parent_profile->add_child(_operator_profile, /*indent=*/true);
672
284
    _operator_profile->add_child(_common_profile, true);
673
284
    _operator_profile->add_child(_custom_profile, true);
674
675
284
    _operator_profile->set_metadata(_parent->node_id());
676
284
    _wait_for_finish_dependency_timer =
677
284
            ADD_TIMER(_common_profile, profile::PENDING_FINISH_DEPENDENCY);
678
284
    constexpr auto is_fake_shared = std::is_same_v<SharedState, FakeSharedState>;
679
284
    if constexpr (!is_fake_shared) {
680
284
        if (info.shared_state_map.find(_parent->dests_id().front()) !=
681
284
            info.shared_state_map.end()) {
682
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
683
                DCHECK(info.shared_state_map.at(_parent->dests_id().front()).second.size() == 1);
684
            }
685
0
            _dependency = info.shared_state_map.at(_parent->dests_id().front())
686
0
                                  .second[std::is_same_v<LocalExchangeSharedState, SharedState>
687
0
                                                  ? 0
688
0
                                                  : info.task_idx]
689
0
                                  .get();
690
0
            _shared_state = _dependency->shared_state()->template cast<SharedState>();
691
284
        } else {
692
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
693
                DCHECK(false);
694
            }
695
284
            _shared_state = info.shared_state->template cast<SharedState>();
696
284
            _dependency = _shared_state->create_sink_dependency(
697
284
                    _parent->dests_id().front(), _parent->node_id(), _parent->get_name());
698
284
        }
699
284
        _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
700
284
                _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
701
284
    }
702
703
284
    if (must_set_shared_state() && _shared_state == nullptr) {
704
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
705
0
    }
706
707
284
    _rows_input_counter =
708
284
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::INPUT_ROWS, TUnit::UNIT, 1);
709
284
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
710
284
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
711
284
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
712
284
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
713
284
    _memory_used_counter =
714
284
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
715
284
    _common_profile->add_info_string("IsColocate",
716
284
                                     std::to_string(_parent->is_colocated_operator()));
717
284
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
718
284
    _common_profile->add_info_string("FollowedByShuffledOperator",
719
284
                                     std::to_string(_parent->followed_by_shuffled_operator()));
720
284
    return Status::OK();
721
284
}
_ZN5doris23PipelineXSinkLocalStateINS_19AnalyticSharedStateEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
661
636
Status PipelineXSinkLocalState<SharedState>::init(RuntimeState* state, LocalSinkStateInfo& info) {
662
    // create profile
663
636
    _operator_profile =
664
636
            state->obj_pool()->add(new RuntimeProfile(_parent->get_name() + name_suffix()));
665
636
    _common_profile = state->obj_pool()->add(new RuntimeProfile(profile::COMMON_COUNTERS));
666
636
    _custom_profile = state->obj_pool()->add(new RuntimeProfile(profile::CUSTOM_COUNTERS));
667
668
    // indentation is true
669
    // The parent profile of sink operator is usually a RuntimeProfile called PipelineTask.
670
    // So we should set the indentation to true.
671
636
    info.parent_profile->add_child(_operator_profile, /*indent=*/true);
672
636
    _operator_profile->add_child(_common_profile, true);
673
636
    _operator_profile->add_child(_custom_profile, true);
674
675
636
    _operator_profile->set_metadata(_parent->node_id());
676
636
    _wait_for_finish_dependency_timer =
677
636
            ADD_TIMER(_common_profile, profile::PENDING_FINISH_DEPENDENCY);
678
636
    constexpr auto is_fake_shared = std::is_same_v<SharedState, FakeSharedState>;
679
636
    if constexpr (!is_fake_shared) {
680
636
        if (info.shared_state_map.find(_parent->dests_id().front()) !=
681
636
            info.shared_state_map.end()) {
682
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
683
                DCHECK(info.shared_state_map.at(_parent->dests_id().front()).second.size() == 1);
684
            }
685
0
            _dependency = info.shared_state_map.at(_parent->dests_id().front())
686
0
                                  .second[std::is_same_v<LocalExchangeSharedState, SharedState>
687
0
                                                  ? 0
688
0
                                                  : info.task_idx]
689
0
                                  .get();
690
0
            _shared_state = _dependency->shared_state()->template cast<SharedState>();
691
636
        } else {
692
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
693
                DCHECK(false);
694
            }
695
636
            _shared_state = info.shared_state->template cast<SharedState>();
696
636
            _dependency = _shared_state->create_sink_dependency(
697
636
                    _parent->dests_id().front(), _parent->node_id(), _parent->get_name());
698
636
        }
699
636
        _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
700
636
                _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
701
636
    }
702
703
636
    if (must_set_shared_state() && _shared_state == nullptr) {
704
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
705
0
    }
706
707
636
    _rows_input_counter =
708
636
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::INPUT_ROWS, TUnit::UNIT, 1);
709
636
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
710
636
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
711
636
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
712
636
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
713
636
    _memory_used_counter =
714
636
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
715
636
    _common_profile->add_info_string("IsColocate",
716
636
                                     std::to_string(_parent->is_colocated_operator()));
717
636
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
718
636
    _common_profile->add_info_string("FollowedByShuffledOperator",
719
636
                                     std::to_string(_parent->followed_by_shuffled_operator()));
720
636
    return Status::OK();
721
636
}
_ZN5doris23PipelineXSinkLocalStateINS_14AggSharedStateEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
661
3.59k
Status PipelineXSinkLocalState<SharedState>::init(RuntimeState* state, LocalSinkStateInfo& info) {
662
    // create profile
663
3.59k
    _operator_profile =
664
3.59k
            state->obj_pool()->add(new RuntimeProfile(_parent->get_name() + name_suffix()));
665
3.59k
    _common_profile = state->obj_pool()->add(new RuntimeProfile(profile::COMMON_COUNTERS));
666
3.59k
    _custom_profile = state->obj_pool()->add(new RuntimeProfile(profile::CUSTOM_COUNTERS));
667
668
    // indentation is true
669
    // The parent profile of sink operator is usually a RuntimeProfile called PipelineTask.
670
    // So we should set the indentation to true.
671
3.59k
    info.parent_profile->add_child(_operator_profile, /*indent=*/true);
672
3.59k
    _operator_profile->add_child(_common_profile, true);
673
3.59k
    _operator_profile->add_child(_custom_profile, true);
674
675
3.59k
    _operator_profile->set_metadata(_parent->node_id());
676
3.59k
    _wait_for_finish_dependency_timer =
677
3.59k
            ADD_TIMER(_common_profile, profile::PENDING_FINISH_DEPENDENCY);
678
3.59k
    constexpr auto is_fake_shared = std::is_same_v<SharedState, FakeSharedState>;
679
3.59k
    if constexpr (!is_fake_shared) {
680
3.59k
        if (info.shared_state_map.find(_parent->dests_id().front()) !=
681
3.59k
            info.shared_state_map.end()) {
682
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
683
                DCHECK(info.shared_state_map.at(_parent->dests_id().front()).second.size() == 1);
684
            }
685
0
            _dependency = info.shared_state_map.at(_parent->dests_id().front())
686
0
                                  .second[std::is_same_v<LocalExchangeSharedState, SharedState>
687
0
                                                  ? 0
688
0
                                                  : info.task_idx]
689
0
                                  .get();
690
0
            _shared_state = _dependency->shared_state()->template cast<SharedState>();
691
3.59k
        } else {
692
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
693
                DCHECK(false);
694
            }
695
3.59k
            _shared_state = info.shared_state->template cast<SharedState>();
696
3.59k
            _dependency = _shared_state->create_sink_dependency(
697
3.59k
                    _parent->dests_id().front(), _parent->node_id(), _parent->get_name());
698
3.59k
        }
699
3.59k
        _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
700
3.59k
                _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
701
3.59k
    }
702
703
3.59k
    if (must_set_shared_state() && _shared_state == nullptr) {
704
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
705
0
    }
706
707
3.59k
    _rows_input_counter =
708
3.59k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::INPUT_ROWS, TUnit::UNIT, 1);
709
3.59k
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
710
3.59k
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
711
3.59k
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
712
3.59k
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
713
3.59k
    _memory_used_counter =
714
3.59k
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
715
3.59k
    _common_profile->add_info_string("IsColocate",
716
3.59k
                                     std::to_string(_parent->is_colocated_operator()));
717
3.59k
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
718
3.59k
    _common_profile->add_info_string("FollowedByShuffledOperator",
719
3.59k
                                     std::to_string(_parent->followed_by_shuffled_operator()));
720
3.59k
    return Status::OK();
721
3.59k
}
_ZN5doris23PipelineXSinkLocalStateINS_22BucketedAggSharedStateEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
661
6
Status PipelineXSinkLocalState<SharedState>::init(RuntimeState* state, LocalSinkStateInfo& info) {
662
    // create profile
663
6
    _operator_profile =
664
6
            state->obj_pool()->add(new RuntimeProfile(_parent->get_name() + name_suffix()));
665
6
    _common_profile = state->obj_pool()->add(new RuntimeProfile(profile::COMMON_COUNTERS));
666
6
    _custom_profile = state->obj_pool()->add(new RuntimeProfile(profile::CUSTOM_COUNTERS));
667
668
    // indentation is true
669
    // The parent profile of sink operator is usually a RuntimeProfile called PipelineTask.
670
    // So we should set the indentation to true.
671
6
    info.parent_profile->add_child(_operator_profile, /*indent=*/true);
672
6
    _operator_profile->add_child(_common_profile, true);
673
6
    _operator_profile->add_child(_custom_profile, true);
674
675
6
    _operator_profile->set_metadata(_parent->node_id());
676
6
    _wait_for_finish_dependency_timer =
677
6
            ADD_TIMER(_common_profile, profile::PENDING_FINISH_DEPENDENCY);
678
6
    constexpr auto is_fake_shared = std::is_same_v<SharedState, FakeSharedState>;
679
6
    if constexpr (!is_fake_shared) {
680
6
        if (info.shared_state_map.find(_parent->dests_id().front()) !=
681
6
            info.shared_state_map.end()) {
682
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
683
                DCHECK(info.shared_state_map.at(_parent->dests_id().front()).second.size() == 1);
684
            }
685
6
            _dependency = info.shared_state_map.at(_parent->dests_id().front())
686
6
                                  .second[std::is_same_v<LocalExchangeSharedState, SharedState>
687
6
                                                  ? 0
688
6
                                                  : info.task_idx]
689
6
                                  .get();
690
6
            _shared_state = _dependency->shared_state()->template cast<SharedState>();
691
6
        } else {
692
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
693
                DCHECK(false);
694
            }
695
0
            _shared_state = info.shared_state->template cast<SharedState>();
696
0
            _dependency = _shared_state->create_sink_dependency(
697
0
                    _parent->dests_id().front(), _parent->node_id(), _parent->get_name());
698
0
        }
699
6
        _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
700
6
                _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
701
6
    }
702
703
6
    if (must_set_shared_state() && _shared_state == nullptr) {
704
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
705
0
    }
706
707
6
    _rows_input_counter =
708
6
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::INPUT_ROWS, TUnit::UNIT, 1);
709
6
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
710
6
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
711
6
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
712
6
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
713
6
    _memory_used_counter =
714
6
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
715
6
    _common_profile->add_info_string("IsColocate",
716
6
                                     std::to_string(_parent->is_colocated_operator()));
717
6
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
718
6
    _common_profile->add_info_string("FollowedByShuffledOperator",
719
6
                                     std::to_string(_parent->followed_by_shuffled_operator()));
720
6
    return Status::OK();
721
6
}
_ZN5doris23PipelineXSinkLocalStateINS_25PartitionedAggSharedStateEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
661
38
Status PipelineXSinkLocalState<SharedState>::init(RuntimeState* state, LocalSinkStateInfo& info) {
662
    // create profile
663
38
    _operator_profile =
664
38
            state->obj_pool()->add(new RuntimeProfile(_parent->get_name() + name_suffix()));
665
38
    _common_profile = state->obj_pool()->add(new RuntimeProfile(profile::COMMON_COUNTERS));
666
38
    _custom_profile = state->obj_pool()->add(new RuntimeProfile(profile::CUSTOM_COUNTERS));
667
668
    // indentation is true
669
    // The parent profile of sink operator is usually a RuntimeProfile called PipelineTask.
670
    // So we should set the indentation to true.
671
38
    info.parent_profile->add_child(_operator_profile, /*indent=*/true);
672
38
    _operator_profile->add_child(_common_profile, true);
673
38
    _operator_profile->add_child(_custom_profile, true);
674
675
38
    _operator_profile->set_metadata(_parent->node_id());
676
38
    _wait_for_finish_dependency_timer =
677
38
            ADD_TIMER(_common_profile, profile::PENDING_FINISH_DEPENDENCY);
678
38
    constexpr auto is_fake_shared = std::is_same_v<SharedState, FakeSharedState>;
679
38
    if constexpr (!is_fake_shared) {
680
38
        if (info.shared_state_map.find(_parent->dests_id().front()) !=
681
38
            info.shared_state_map.end()) {
682
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
683
                DCHECK(info.shared_state_map.at(_parent->dests_id().front()).second.size() == 1);
684
            }
685
0
            _dependency = info.shared_state_map.at(_parent->dests_id().front())
686
0
                                  .second[std::is_same_v<LocalExchangeSharedState, SharedState>
687
0
                                                  ? 0
688
0
                                                  : info.task_idx]
689
0
                                  .get();
690
0
            _shared_state = _dependency->shared_state()->template cast<SharedState>();
691
38
        } else {
692
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
693
                DCHECK(false);
694
            }
695
38
            _shared_state = info.shared_state->template cast<SharedState>();
696
38
            _dependency = _shared_state->create_sink_dependency(
697
38
                    _parent->dests_id().front(), _parent->node_id(), _parent->get_name());
698
38
        }
699
38
        _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
700
38
                _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
701
38
    }
702
703
38
    if (must_set_shared_state() && _shared_state == nullptr) {
704
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
705
0
    }
706
707
38
    _rows_input_counter =
708
38
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::INPUT_ROWS, TUnit::UNIT, 1);
709
38
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
710
38
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
711
38
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
712
38
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
713
38
    _memory_used_counter =
714
38
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
715
38
    _common_profile->add_info_string("IsColocate",
716
38
                                     std::to_string(_parent->is_colocated_operator()));
717
38
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
718
38
    _common_profile->add_info_string("FollowedByShuffledOperator",
719
38
                                     std::to_string(_parent->followed_by_shuffled_operator()));
720
38
    return Status::OK();
721
38
}
_ZN5doris23PipelineXSinkLocalStateINS_15FakeSharedStateEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
661
13.2k
Status PipelineXSinkLocalState<SharedState>::init(RuntimeState* state, LocalSinkStateInfo& info) {
662
    // create profile
663
13.2k
    _operator_profile =
664
13.2k
            state->obj_pool()->add(new RuntimeProfile(_parent->get_name() + name_suffix()));
665
13.2k
    _common_profile = state->obj_pool()->add(new RuntimeProfile(profile::COMMON_COUNTERS));
666
13.2k
    _custom_profile = state->obj_pool()->add(new RuntimeProfile(profile::CUSTOM_COUNTERS));
667
668
    // indentation is true
669
    // The parent profile of sink operator is usually a RuntimeProfile called PipelineTask.
670
    // So we should set the indentation to true.
671
13.2k
    info.parent_profile->add_child(_operator_profile, /*indent=*/true);
672
13.2k
    _operator_profile->add_child(_common_profile, true);
673
13.2k
    _operator_profile->add_child(_custom_profile, true);
674
675
13.2k
    _operator_profile->set_metadata(_parent->node_id());
676
13.2k
    _wait_for_finish_dependency_timer =
677
13.2k
            ADD_TIMER(_common_profile, profile::PENDING_FINISH_DEPENDENCY);
678
13.2k
    constexpr auto is_fake_shared = std::is_same_v<SharedState, FakeSharedState>;
679
    if constexpr (!is_fake_shared) {
680
        if (info.shared_state_map.find(_parent->dests_id().front()) !=
681
            info.shared_state_map.end()) {
682
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
683
                DCHECK(info.shared_state_map.at(_parent->dests_id().front()).second.size() == 1);
684
            }
685
            _dependency = info.shared_state_map.at(_parent->dests_id().front())
686
                                  .second[std::is_same_v<LocalExchangeSharedState, SharedState>
687
                                                  ? 0
688
                                                  : info.task_idx]
689
                                  .get();
690
            _shared_state = _dependency->shared_state()->template cast<SharedState>();
691
        } else {
692
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
693
                DCHECK(false);
694
            }
695
            _shared_state = info.shared_state->template cast<SharedState>();
696
            _dependency = _shared_state->create_sink_dependency(
697
                    _parent->dests_id().front(), _parent->node_id(), _parent->get_name());
698
        }
699
        _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
700
                _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
701
    }
702
703
13.2k
    if (must_set_shared_state() && _shared_state == nullptr) {
704
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
705
0
    }
706
707
13.2k
    _rows_input_counter =
708
13.2k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::INPUT_ROWS, TUnit::UNIT, 1);
709
13.2k
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
710
13.2k
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
711
13.2k
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
712
13.2k
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
713
13.2k
    _memory_used_counter =
714
13.2k
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
715
13.2k
    _common_profile->add_info_string("IsColocate",
716
13.2k
                                     std::to_string(_parent->is_colocated_operator()));
717
13.2k
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
718
13.2k
    _common_profile->add_info_string("FollowedByShuffledOperator",
719
13.2k
                                     std::to_string(_parent->followed_by_shuffled_operator()));
720
13.2k
    return Status::OK();
721
13.2k
}
_ZN5doris23PipelineXSinkLocalStateINS_16UnionSharedStateEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
661
244
Status PipelineXSinkLocalState<SharedState>::init(RuntimeState* state, LocalSinkStateInfo& info) {
662
    // create profile
663
244
    _operator_profile =
664
244
            state->obj_pool()->add(new RuntimeProfile(_parent->get_name() + name_suffix()));
665
244
    _common_profile = state->obj_pool()->add(new RuntimeProfile(profile::COMMON_COUNTERS));
666
244
    _custom_profile = state->obj_pool()->add(new RuntimeProfile(profile::CUSTOM_COUNTERS));
667
668
    // indentation is true
669
    // The parent profile of sink operator is usually a RuntimeProfile called PipelineTask.
670
    // So we should set the indentation to true.
671
244
    info.parent_profile->add_child(_operator_profile, /*indent=*/true);
672
244
    _operator_profile->add_child(_common_profile, true);
673
244
    _operator_profile->add_child(_custom_profile, true);
674
675
244
    _operator_profile->set_metadata(_parent->node_id());
676
244
    _wait_for_finish_dependency_timer =
677
244
            ADD_TIMER(_common_profile, profile::PENDING_FINISH_DEPENDENCY);
678
244
    constexpr auto is_fake_shared = std::is_same_v<SharedState, FakeSharedState>;
679
244
    if constexpr (!is_fake_shared) {
680
244
        if (info.shared_state_map.find(_parent->dests_id().front()) !=
681
244
            info.shared_state_map.end()) {
682
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
683
                DCHECK(info.shared_state_map.at(_parent->dests_id().front()).second.size() == 1);
684
            }
685
0
            _dependency = info.shared_state_map.at(_parent->dests_id().front())
686
0
                                  .second[std::is_same_v<LocalExchangeSharedState, SharedState>
687
0
                                                  ? 0
688
0
                                                  : info.task_idx]
689
0
                                  .get();
690
0
            _shared_state = _dependency->shared_state()->template cast<SharedState>();
691
244
        } else {
692
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
693
                DCHECK(false);
694
            }
695
244
            _shared_state = info.shared_state->template cast<SharedState>();
696
244
            _dependency = _shared_state->create_sink_dependency(
697
244
                    _parent->dests_id().front(), _parent->node_id(), _parent->get_name());
698
244
        }
699
244
        _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
700
244
                _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
701
244
    }
702
703
244
    if (must_set_shared_state() && _shared_state == nullptr) {
704
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
705
0
    }
706
707
244
    _rows_input_counter =
708
244
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::INPUT_ROWS, TUnit::UNIT, 1);
709
244
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
710
244
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
711
244
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
712
244
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
713
244
    _memory_used_counter =
714
244
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
715
244
    _common_profile->add_info_string("IsColocate",
716
244
                                     std::to_string(_parent->is_colocated_operator()));
717
244
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
718
244
    _common_profile->add_info_string("FollowedByShuffledOperator",
719
244
                                     std::to_string(_parent->followed_by_shuffled_operator()));
720
244
    return Status::OK();
721
244
}
_ZN5doris23PipelineXSinkLocalStateINS_28PartitionSortNodeSharedStateEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
661
112
Status PipelineXSinkLocalState<SharedState>::init(RuntimeState* state, LocalSinkStateInfo& info) {
662
    // create profile
663
112
    _operator_profile =
664
112
            state->obj_pool()->add(new RuntimeProfile(_parent->get_name() + name_suffix()));
665
112
    _common_profile = state->obj_pool()->add(new RuntimeProfile(profile::COMMON_COUNTERS));
666
112
    _custom_profile = state->obj_pool()->add(new RuntimeProfile(profile::CUSTOM_COUNTERS));
667
668
    // indentation is true
669
    // The parent profile of sink operator is usually a RuntimeProfile called PipelineTask.
670
    // So we should set the indentation to true.
671
112
    info.parent_profile->add_child(_operator_profile, /*indent=*/true);
672
112
    _operator_profile->add_child(_common_profile, true);
673
112
    _operator_profile->add_child(_custom_profile, true);
674
675
112
    _operator_profile->set_metadata(_parent->node_id());
676
112
    _wait_for_finish_dependency_timer =
677
112
            ADD_TIMER(_common_profile, profile::PENDING_FINISH_DEPENDENCY);
678
112
    constexpr auto is_fake_shared = std::is_same_v<SharedState, FakeSharedState>;
679
112
    if constexpr (!is_fake_shared) {
680
112
        if (info.shared_state_map.find(_parent->dests_id().front()) !=
681
112
            info.shared_state_map.end()) {
682
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
683
                DCHECK(info.shared_state_map.at(_parent->dests_id().front()).second.size() == 1);
684
            }
685
0
            _dependency = info.shared_state_map.at(_parent->dests_id().front())
686
0
                                  .second[std::is_same_v<LocalExchangeSharedState, SharedState>
687
0
                                                  ? 0
688
0
                                                  : info.task_idx]
689
0
                                  .get();
690
0
            _shared_state = _dependency->shared_state()->template cast<SharedState>();
691
112
        } else {
692
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
693
                DCHECK(false);
694
            }
695
112
            _shared_state = info.shared_state->template cast<SharedState>();
696
112
            _dependency = _shared_state->create_sink_dependency(
697
112
                    _parent->dests_id().front(), _parent->node_id(), _parent->get_name());
698
112
        }
699
112
        _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
700
112
                _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
701
112
    }
702
703
112
    if (must_set_shared_state() && _shared_state == nullptr) {
704
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
705
0
    }
706
707
112
    _rows_input_counter =
708
112
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::INPUT_ROWS, TUnit::UNIT, 1);
709
112
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
710
112
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
711
112
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
712
112
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
713
112
    _memory_used_counter =
714
112
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
715
112
    _common_profile->add_info_string("IsColocate",
716
112
                                     std::to_string(_parent->is_colocated_operator()));
717
112
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
718
112
    _common_profile->add_info_string("FollowedByShuffledOperator",
719
112
                                     std::to_string(_parent->followed_by_shuffled_operator()));
720
112
    return Status::OK();
721
112
}
_ZN5doris23PipelineXSinkLocalStateINS_20MultiCastSharedStateEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
661
85
Status PipelineXSinkLocalState<SharedState>::init(RuntimeState* state, LocalSinkStateInfo& info) {
662
    // create profile
663
85
    _operator_profile =
664
85
            state->obj_pool()->add(new RuntimeProfile(_parent->get_name() + name_suffix()));
665
85
    _common_profile = state->obj_pool()->add(new RuntimeProfile(profile::COMMON_COUNTERS));
666
85
    _custom_profile = state->obj_pool()->add(new RuntimeProfile(profile::CUSTOM_COUNTERS));
667
668
    // indentation is true
669
    // The parent profile of sink operator is usually a RuntimeProfile called PipelineTask.
670
    // So we should set the indentation to true.
671
85
    info.parent_profile->add_child(_operator_profile, /*indent=*/true);
672
85
    _operator_profile->add_child(_common_profile, true);
673
85
    _operator_profile->add_child(_custom_profile, true);
674
675
85
    _operator_profile->set_metadata(_parent->node_id());
676
85
    _wait_for_finish_dependency_timer =
677
85
            ADD_TIMER(_common_profile, profile::PENDING_FINISH_DEPENDENCY);
678
85
    constexpr auto is_fake_shared = std::is_same_v<SharedState, FakeSharedState>;
679
85
    if constexpr (!is_fake_shared) {
680
85
        if (info.shared_state_map.find(_parent->dests_id().front()) !=
681
85
            info.shared_state_map.end()) {
682
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
683
                DCHECK(info.shared_state_map.at(_parent->dests_id().front()).second.size() == 1);
684
            }
685
0
            _dependency = info.shared_state_map.at(_parent->dests_id().front())
686
0
                                  .second[std::is_same_v<LocalExchangeSharedState, SharedState>
687
0
                                                  ? 0
688
0
                                                  : info.task_idx]
689
0
                                  .get();
690
0
            _shared_state = _dependency->shared_state()->template cast<SharedState>();
691
85
        } else {
692
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
693
                DCHECK(false);
694
            }
695
85
            _shared_state = info.shared_state->template cast<SharedState>();
696
85
            _dependency = _shared_state->create_sink_dependency(
697
85
                    _parent->dests_id().front(), _parent->node_id(), _parent->get_name());
698
85
        }
699
85
        _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
700
85
                _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
701
85
    }
702
703
85
    if (must_set_shared_state() && _shared_state == nullptr) {
704
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
705
0
    }
706
707
85
    _rows_input_counter =
708
85
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::INPUT_ROWS, TUnit::UNIT, 1);
709
85
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
710
85
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
711
85
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
712
85
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
713
85
    _memory_used_counter =
714
85
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
715
85
    _common_profile->add_info_string("IsColocate",
716
85
                                     std::to_string(_parent->is_colocated_operator()));
717
85
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
718
85
    _common_profile->add_info_string("FollowedByShuffledOperator",
719
85
                                     std::to_string(_parent->followed_by_shuffled_operator()));
720
85
    return Status::OK();
721
85
}
_ZN5doris23PipelineXSinkLocalStateINS_14SetSharedStateEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
661
95
Status PipelineXSinkLocalState<SharedState>::init(RuntimeState* state, LocalSinkStateInfo& info) {
662
    // create profile
663
95
    _operator_profile =
664
95
            state->obj_pool()->add(new RuntimeProfile(_parent->get_name() + name_suffix()));
665
95
    _common_profile = state->obj_pool()->add(new RuntimeProfile(profile::COMMON_COUNTERS));
666
95
    _custom_profile = state->obj_pool()->add(new RuntimeProfile(profile::CUSTOM_COUNTERS));
667
668
    // indentation is true
669
    // The parent profile of sink operator is usually a RuntimeProfile called PipelineTask.
670
    // So we should set the indentation to true.
671
95
    info.parent_profile->add_child(_operator_profile, /*indent=*/true);
672
95
    _operator_profile->add_child(_common_profile, true);
673
95
    _operator_profile->add_child(_custom_profile, true);
674
675
95
    _operator_profile->set_metadata(_parent->node_id());
676
95
    _wait_for_finish_dependency_timer =
677
95
            ADD_TIMER(_common_profile, profile::PENDING_FINISH_DEPENDENCY);
678
95
    constexpr auto is_fake_shared = std::is_same_v<SharedState, FakeSharedState>;
679
95
    if constexpr (!is_fake_shared) {
680
95
        if (info.shared_state_map.find(_parent->dests_id().front()) !=
681
95
            info.shared_state_map.end()) {
682
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
683
                DCHECK(info.shared_state_map.at(_parent->dests_id().front()).second.size() == 1);
684
            }
685
0
            _dependency = info.shared_state_map.at(_parent->dests_id().front())
686
0
                                  .second[std::is_same_v<LocalExchangeSharedState, SharedState>
687
0
                                                  ? 0
688
0
                                                  : info.task_idx]
689
0
                                  .get();
690
0
            _shared_state = _dependency->shared_state()->template cast<SharedState>();
691
95
        } else {
692
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
693
                DCHECK(false);
694
            }
695
95
            _shared_state = info.shared_state->template cast<SharedState>();
696
95
            _dependency = _shared_state->create_sink_dependency(
697
95
                    _parent->dests_id().front(), _parent->node_id(), _parent->get_name());
698
95
        }
699
95
        _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
700
95
                _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
701
95
    }
702
703
95
    if (must_set_shared_state() && _shared_state == nullptr) {
704
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
705
0
    }
706
707
95
    _rows_input_counter =
708
95
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::INPUT_ROWS, TUnit::UNIT, 1);
709
95
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
710
95
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
711
95
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
712
95
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
713
95
    _memory_used_counter =
714
95
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
715
95
    _common_profile->add_info_string("IsColocate",
716
95
                                     std::to_string(_parent->is_colocated_operator()));
717
95
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
718
95
    _common_profile->add_info_string("FollowedByShuffledOperator",
719
95
                                     std::to_string(_parent->followed_by_shuffled_operator()));
720
95
    return Status::OK();
721
95
}
_ZN5doris23PipelineXSinkLocalStateINS_24LocalExchangeSharedStateEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
661
5.82k
Status PipelineXSinkLocalState<SharedState>::init(RuntimeState* state, LocalSinkStateInfo& info) {
662
    // create profile
663
5.82k
    _operator_profile =
664
5.82k
            state->obj_pool()->add(new RuntimeProfile(_parent->get_name() + name_suffix()));
665
5.82k
    _common_profile = state->obj_pool()->add(new RuntimeProfile(profile::COMMON_COUNTERS));
666
5.82k
    _custom_profile = state->obj_pool()->add(new RuntimeProfile(profile::CUSTOM_COUNTERS));
667
668
    // indentation is true
669
    // The parent profile of sink operator is usually a RuntimeProfile called PipelineTask.
670
    // So we should set the indentation to true.
671
5.82k
    info.parent_profile->add_child(_operator_profile, /*indent=*/true);
672
5.82k
    _operator_profile->add_child(_common_profile, true);
673
5.82k
    _operator_profile->add_child(_custom_profile, true);
674
675
5.82k
    _operator_profile->set_metadata(_parent->node_id());
676
5.82k
    _wait_for_finish_dependency_timer =
677
5.82k
            ADD_TIMER(_common_profile, profile::PENDING_FINISH_DEPENDENCY);
678
5.82k
    constexpr auto is_fake_shared = std::is_same_v<SharedState, FakeSharedState>;
679
5.82k
    if constexpr (!is_fake_shared) {
680
5.82k
        if (info.shared_state_map.find(_parent->dests_id().front()) !=
681
5.82k
            info.shared_state_map.end()) {
682
5.82k
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
683
5.82k
                DCHECK(info.shared_state_map.at(_parent->dests_id().front()).second.size() == 1);
684
5.82k
            }
685
5.82k
            _dependency = info.shared_state_map.at(_parent->dests_id().front())
686
5.82k
                                  .second[std::is_same_v<LocalExchangeSharedState, SharedState>
687
5.82k
                                                  ? 0
688
5.82k
                                                  : info.task_idx]
689
5.82k
                                  .get();
690
5.82k
            _shared_state = _dependency->shared_state()->template cast<SharedState>();
691
5.82k
        } else {
692
2
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
693
2
                DCHECK(false);
694
2
            }
695
2
            _shared_state = info.shared_state->template cast<SharedState>();
696
2
            _dependency = _shared_state->create_sink_dependency(
697
2
                    _parent->dests_id().front(), _parent->node_id(), _parent->get_name());
698
2
        }
699
5.82k
        _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
700
5.82k
                _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
701
5.82k
    }
702
703
5.82k
    if (must_set_shared_state() && _shared_state == nullptr) {
704
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
705
0
    }
706
707
5.82k
    _rows_input_counter =
708
5.82k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::INPUT_ROWS, TUnit::UNIT, 1);
709
5.82k
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
710
5.82k
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
711
5.82k
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
712
5.82k
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
713
5.82k
    _memory_used_counter =
714
5.82k
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
715
5.82k
    _common_profile->add_info_string("IsColocate",
716
5.82k
                                     std::to_string(_parent->is_colocated_operator()));
717
5.82k
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
718
5.82k
    _common_profile->add_info_string("FollowedByShuffledOperator",
719
5.82k
                                     std::to_string(_parent->followed_by_shuffled_operator()));
720
5.82k
    return Status::OK();
721
5.82k
}
_ZN5doris23PipelineXSinkLocalStateINS_16BasicSharedStateEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
661
11.3k
Status PipelineXSinkLocalState<SharedState>::init(RuntimeState* state, LocalSinkStateInfo& info) {
662
    // create profile
663
11.3k
    _operator_profile =
664
11.3k
            state->obj_pool()->add(new RuntimeProfile(_parent->get_name() + name_suffix()));
665
11.3k
    _common_profile = state->obj_pool()->add(new RuntimeProfile(profile::COMMON_COUNTERS));
666
11.3k
    _custom_profile = state->obj_pool()->add(new RuntimeProfile(profile::CUSTOM_COUNTERS));
667
668
    // indentation is true
669
    // The parent profile of sink operator is usually a RuntimeProfile called PipelineTask.
670
    // So we should set the indentation to true.
671
11.3k
    info.parent_profile->add_child(_operator_profile, /*indent=*/true);
672
11.3k
    _operator_profile->add_child(_common_profile, true);
673
11.3k
    _operator_profile->add_child(_custom_profile, true);
674
675
11.3k
    _operator_profile->set_metadata(_parent->node_id());
676
11.3k
    _wait_for_finish_dependency_timer =
677
11.3k
            ADD_TIMER(_common_profile, profile::PENDING_FINISH_DEPENDENCY);
678
11.3k
    constexpr auto is_fake_shared = std::is_same_v<SharedState, FakeSharedState>;
679
11.3k
    if constexpr (!is_fake_shared) {
680
11.3k
        if (info.shared_state_map.find(_parent->dests_id().front()) !=
681
11.3k
            info.shared_state_map.end()) {
682
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
683
                DCHECK(info.shared_state_map.at(_parent->dests_id().front()).second.size() == 1);
684
            }
685
0
            _dependency = info.shared_state_map.at(_parent->dests_id().front())
686
0
                                  .second[std::is_same_v<LocalExchangeSharedState, SharedState>
687
0
                                                  ? 0
688
0
                                                  : info.task_idx]
689
0
                                  .get();
690
0
            _shared_state = _dependency->shared_state()->template cast<SharedState>();
691
11.3k
        } else {
692
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
693
                DCHECK(false);
694
            }
695
11.3k
            _shared_state = info.shared_state->template cast<SharedState>();
696
11.3k
            _dependency = _shared_state->create_sink_dependency(
697
11.3k
                    _parent->dests_id().front(), _parent->node_id(), _parent->get_name());
698
11.3k
        }
699
11.3k
        _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
700
11.3k
                _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
701
11.3k
    }
702
703
11.3k
    if (must_set_shared_state() && _shared_state == nullptr) {
704
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
705
0
    }
706
707
11.3k
    _rows_input_counter =
708
11.3k
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::INPUT_ROWS, TUnit::UNIT, 1);
709
11.3k
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
710
11.3k
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
711
11.3k
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
712
11.3k
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
713
11.3k
    _memory_used_counter =
714
11.3k
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
715
11.3k
    _common_profile->add_info_string("IsColocate",
716
11.3k
                                     std::to_string(_parent->is_colocated_operator()));
717
11.3k
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
718
11.3k
    _common_profile->add_info_string("FollowedByShuffledOperator",
719
11.3k
                                     std::to_string(_parent->followed_by_shuffled_operator()));
720
11.3k
    return Status::OK();
721
11.3k
}
_ZN5doris23PipelineXSinkLocalStateINS_20DataQueueSharedStateEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
661
11
Status PipelineXSinkLocalState<SharedState>::init(RuntimeState* state, LocalSinkStateInfo& info) {
662
    // create profile
663
11
    _operator_profile =
664
11
            state->obj_pool()->add(new RuntimeProfile(_parent->get_name() + name_suffix()));
665
11
    _common_profile = state->obj_pool()->add(new RuntimeProfile(profile::COMMON_COUNTERS));
666
11
    _custom_profile = state->obj_pool()->add(new RuntimeProfile(profile::CUSTOM_COUNTERS));
667
668
    // indentation is true
669
    // The parent profile of sink operator is usually a RuntimeProfile called PipelineTask.
670
    // So we should set the indentation to true.
671
11
    info.parent_profile->add_child(_operator_profile, /*indent=*/true);
672
11
    _operator_profile->add_child(_common_profile, true);
673
11
    _operator_profile->add_child(_custom_profile, true);
674
675
11
    _operator_profile->set_metadata(_parent->node_id());
676
11
    _wait_for_finish_dependency_timer =
677
11
            ADD_TIMER(_common_profile, profile::PENDING_FINISH_DEPENDENCY);
678
11
    constexpr auto is_fake_shared = std::is_same_v<SharedState, FakeSharedState>;
679
11
    if constexpr (!is_fake_shared) {
680
11
        if (info.shared_state_map.find(_parent->dests_id().front()) !=
681
11
            info.shared_state_map.end()) {
682
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
683
                DCHECK(info.shared_state_map.at(_parent->dests_id().front()).second.size() == 1);
684
            }
685
0
            _dependency = info.shared_state_map.at(_parent->dests_id().front())
686
0
                                  .second[std::is_same_v<LocalExchangeSharedState, SharedState>
687
0
                                                  ? 0
688
0
                                                  : info.task_idx]
689
0
                                  .get();
690
0
            _shared_state = _dependency->shared_state()->template cast<SharedState>();
691
11
        } else {
692
            if constexpr (std::is_same_v<LocalExchangeSharedState, SharedState>) {
693
                DCHECK(false);
694
            }
695
11
            _shared_state = info.shared_state->template cast<SharedState>();
696
11
            _dependency = _shared_state->create_sink_dependency(
697
11
                    _parent->dests_id().front(), _parent->node_id(), _parent->get_name());
698
11
        }
699
11
        _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
700
11
                _common_profile, "WaitForDependency[" + _dependency->name() + "]Time", 1);
701
11
    }
702
703
11
    if (must_set_shared_state() && _shared_state == nullptr) {
704
0
        return Status::InternalError("must set shared state, in {}", _parent->get_name());
705
0
    }
706
707
11
    _rows_input_counter =
708
11
            ADD_COUNTER_WITH_LEVEL(_common_profile, profile::INPUT_ROWS, TUnit::UNIT, 1);
709
11
    _init_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::INIT_TIME, 2);
710
11
    _open_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::OPEN_TIME, 2);
711
11
    _close_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::CLOSE_TIME, 2);
712
11
    _exec_timer = ADD_TIMER_WITH_LEVEL(_common_profile, profile::EXEC_TIME, 1);
713
11
    _memory_used_counter =
714
11
            _common_profile->AddHighWaterMarkCounter(profile::MEMORY_USAGE, TUnit::BYTES, "", 1);
715
11
    _common_profile->add_info_string("IsColocate",
716
11
                                     std::to_string(_parent->is_colocated_operator()));
717
11
    _common_profile->add_info_string("IsShuffled", std::to_string(_parent->is_shuffled_operator()));
718
11
    _common_profile->add_info_string("FollowedByShuffledOperator",
719
11
                                     std::to_string(_parent->followed_by_shuffled_operator()));
720
11
    return Status::OK();
721
11
}
Unexecuted instantiation: _ZN5doris23PipelineXSinkLocalStateINS_17RecCTESharedStateEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
722
723
template <typename SharedState>
724
117k
Status PipelineXSinkLocalState<SharedState>::close(RuntimeState* state, Status exec_status) {
725
117k
    if (_closed) {
726
2
        return Status::OK();
727
2
    }
728
117k
    if constexpr (!std::is_same_v<SharedState, FakeSharedState>) {
729
103k
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
730
103k
    }
731
117k
    _closed = true;
732
117k
    return Status::OK();
733
117k
}
_ZN5doris23PipelineXSinkLocalStateINS_19HashJoinSharedStateEE5closeEPNS_12RuntimeStateENS_6StatusE
Line
Count
Source
724
73.3k
Status PipelineXSinkLocalState<SharedState>::close(RuntimeState* state, Status exec_status) {
725
73.3k
    if (_closed) {
726
0
        return Status::OK();
727
0
    }
728
73.3k
    if constexpr (!std::is_same_v<SharedState, FakeSharedState>) {
729
73.3k
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
730
73.3k
    }
731
73.3k
    _closed = true;
732
73.3k
    return Status::OK();
733
73.3k
}
_ZN5doris23PipelineXSinkLocalStateINS_30PartitionedHashJoinSharedStateEE5closeEPNS_12RuntimeStateENS_6StatusE
Line
Count
Source
724
1
Status PipelineXSinkLocalState<SharedState>::close(RuntimeState* state, Status exec_status) {
725
1
    if (_closed) {
726
0
        return Status::OK();
727
0
    }
728
1
    if constexpr (!std::is_same_v<SharedState, FakeSharedState>) {
729
1
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
730
1
    }
731
1
    _closed = true;
732
1
    return Status::OK();
733
1
}
_ZN5doris23PipelineXSinkLocalStateINS_15SortSharedStateEE5closeEPNS_12RuntimeStateENS_6StatusE
Line
Count
Source
724
8.67k
Status PipelineXSinkLocalState<SharedState>::close(RuntimeState* state, Status exec_status) {
725
8.67k
    if (_closed) {
726
0
        return Status::OK();
727
0
    }
728
8.67k
    if constexpr (!std::is_same_v<SharedState, FakeSharedState>) {
729
8.67k
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
730
8.67k
    }
731
8.67k
    _closed = true;
732
8.67k
    return Status::OK();
733
8.67k
}
_ZN5doris23PipelineXSinkLocalStateINS_20SpillSortSharedStateEE5closeEPNS_12RuntimeStateENS_6StatusE
Line
Count
Source
724
11
Status PipelineXSinkLocalState<SharedState>::close(RuntimeState* state, Status exec_status) {
725
11
    if (_closed) {
726
2
        return Status::OK();
727
2
    }
728
9
    if constexpr (!std::is_same_v<SharedState, FakeSharedState>) {
729
9
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
730
9
    }
731
9
    _closed = true;
732
9
    return Status::OK();
733
11
}
_ZN5doris23PipelineXSinkLocalStateINS_25NestedLoopJoinSharedStateEE5closeEPNS_12RuntimeStateENS_6StatusE
Line
Count
Source
724
282
Status PipelineXSinkLocalState<SharedState>::close(RuntimeState* state, Status exec_status) {
725
282
    if (_closed) {
726
0
        return Status::OK();
727
0
    }
728
282
    if constexpr (!std::is_same_v<SharedState, FakeSharedState>) {
729
282
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
730
282
    }
731
282
    _closed = true;
732
282
    return Status::OK();
733
282
}
_ZN5doris23PipelineXSinkLocalStateINS_19AnalyticSharedStateEE5closeEPNS_12RuntimeStateENS_6StatusE
Line
Count
Source
724
620
Status PipelineXSinkLocalState<SharedState>::close(RuntimeState* state, Status exec_status) {
725
620
    if (_closed) {
726
0
        return Status::OK();
727
0
    }
728
620
    if constexpr (!std::is_same_v<SharedState, FakeSharedState>) {
729
620
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
730
620
    }
731
620
    _closed = true;
732
620
    return Status::OK();
733
620
}
_ZN5doris23PipelineXSinkLocalStateINS_14AggSharedStateEE5closeEPNS_12RuntimeStateENS_6StatusE
Line
Count
Source
724
3.52k
Status PipelineXSinkLocalState<SharedState>::close(RuntimeState* state, Status exec_status) {
725
3.52k
    if (_closed) {
726
0
        return Status::OK();
727
0
    }
728
3.52k
    if constexpr (!std::is_same_v<SharedState, FakeSharedState>) {
729
3.52k
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
730
3.52k
    }
731
3.52k
    _closed = true;
732
3.52k
    return Status::OK();
733
3.52k
}
_ZN5doris23PipelineXSinkLocalStateINS_22BucketedAggSharedStateEE5closeEPNS_12RuntimeStateENS_6StatusE
Line
Count
Source
724
6
Status PipelineXSinkLocalState<SharedState>::close(RuntimeState* state, Status exec_status) {
725
6
    if (_closed) {
726
0
        return Status::OK();
727
0
    }
728
6
    if constexpr (!std::is_same_v<SharedState, FakeSharedState>) {
729
6
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
730
6
    }
731
6
    _closed = true;
732
6
    return Status::OK();
733
6
}
_ZN5doris23PipelineXSinkLocalStateINS_25PartitionedAggSharedStateEE5closeEPNS_12RuntimeStateENS_6StatusE
Line
Count
Source
724
27
Status PipelineXSinkLocalState<SharedState>::close(RuntimeState* state, Status exec_status) {
725
27
    if (_closed) {
726
0
        return Status::OK();
727
0
    }
728
27
    if constexpr (!std::is_same_v<SharedState, FakeSharedState>) {
729
27
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
730
27
    }
731
27
    _closed = true;
732
27
    return Status::OK();
733
27
}
_ZN5doris23PipelineXSinkLocalStateINS_15FakeSharedStateEE5closeEPNS_12RuntimeStateENS_6StatusE
Line
Count
Source
724
13.3k
Status PipelineXSinkLocalState<SharedState>::close(RuntimeState* state, Status exec_status) {
725
13.3k
    if (_closed) {
726
0
        return Status::OK();
727
0
    }
728
    if constexpr (!std::is_same_v<SharedState, FakeSharedState>) {
729
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
730
    }
731
13.3k
    _closed = true;
732
13.3k
    return Status::OK();
733
13.3k
}
_ZN5doris23PipelineXSinkLocalStateINS_16UnionSharedStateEE5closeEPNS_12RuntimeStateENS_6StatusE
Line
Count
Source
724
240
Status PipelineXSinkLocalState<SharedState>::close(RuntimeState* state, Status exec_status) {
725
240
    if (_closed) {
726
0
        return Status::OK();
727
0
    }
728
240
    if constexpr (!std::is_same_v<SharedState, FakeSharedState>) {
729
240
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
730
240
    }
731
240
    _closed = true;
732
240
    return Status::OK();
733
240
}
_ZN5doris23PipelineXSinkLocalStateINS_28PartitionSortNodeSharedStateEE5closeEPNS_12RuntimeStateENS_6StatusE
Line
Count
Source
724
10
Status PipelineXSinkLocalState<SharedState>::close(RuntimeState* state, Status exec_status) {
725
10
    if (_closed) {
726
0
        return Status::OK();
727
0
    }
728
10
    if constexpr (!std::is_same_v<SharedState, FakeSharedState>) {
729
10
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
730
10
    }
731
10
    _closed = true;
732
10
    return Status::OK();
733
10
}
_ZN5doris23PipelineXSinkLocalStateINS_20MultiCastSharedStateEE5closeEPNS_12RuntimeStateENS_6StatusE
Line
Count
Source
724
85
Status PipelineXSinkLocalState<SharedState>::close(RuntimeState* state, Status exec_status) {
725
85
    if (_closed) {
726
0
        return Status::OK();
727
0
    }
728
85
    if constexpr (!std::is_same_v<SharedState, FakeSharedState>) {
729
85
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
730
85
    }
731
85
    _closed = true;
732
85
    return Status::OK();
733
85
}
_ZN5doris23PipelineXSinkLocalStateINS_14SetSharedStateEE5closeEPNS_12RuntimeStateENS_6StatusE
Line
Count
Source
724
66
Status PipelineXSinkLocalState<SharedState>::close(RuntimeState* state, Status exec_status) {
725
66
    if (_closed) {
726
0
        return Status::OK();
727
0
    }
728
66
    if constexpr (!std::is_same_v<SharedState, FakeSharedState>) {
729
66
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
730
66
    }
731
66
    _closed = true;
732
66
    return Status::OK();
733
66
}
_ZN5doris23PipelineXSinkLocalStateINS_24LocalExchangeSharedStateEE5closeEPNS_12RuntimeStateENS_6StatusE
Line
Count
Source
724
5.82k
Status PipelineXSinkLocalState<SharedState>::close(RuntimeState* state, Status exec_status) {
725
5.82k
    if (_closed) {
726
0
        return Status::OK();
727
0
    }
728
5.82k
    if constexpr (!std::is_same_v<SharedState, FakeSharedState>) {
729
5.82k
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
730
5.82k
    }
731
5.82k
    _closed = true;
732
5.82k
    return Status::OK();
733
5.82k
}
_ZN5doris23PipelineXSinkLocalStateINS_16BasicSharedStateEE5closeEPNS_12RuntimeStateENS_6StatusE
Line
Count
Source
724
11.2k
Status PipelineXSinkLocalState<SharedState>::close(RuntimeState* state, Status exec_status) {
725
11.2k
    if (_closed) {
726
0
        return Status::OK();
727
0
    }
728
11.2k
    if constexpr (!std::is_same_v<SharedState, FakeSharedState>) {
729
11.2k
        COUNTER_SET(_wait_for_dependency_timer, _dependency->watcher_elapse_time());
730
11.2k
    }
731
11.2k
    _closed = true;
732
11.2k
    return Status::OK();
733
11.2k
}
Unexecuted instantiation: _ZN5doris23PipelineXSinkLocalStateINS_20DataQueueSharedStateEE5closeEPNS_12RuntimeStateENS_6StatusE
Unexecuted instantiation: _ZN5doris23PipelineXSinkLocalStateINS_17RecCTESharedStateEE5closeEPNS_12RuntimeStateENS_6StatusE
734
735
template <typename LocalStateType>
736
Status StreamingOperatorX<LocalStateType>::get_block_impl(RuntimeState* state, Block* block,
737
168
                                                          bool* eos) {
738
168
    RETURN_IF_ERROR(OperatorX<LocalStateType>::_child->get_block_after_projects(state, block, eos));
739
168
    return pull(state, block, eos);
740
168
}
_ZN5doris18StreamingOperatorXINS_23AssertNumRowsLocalStateEE14get_block_implEPNS_12RuntimeStateEPNS_5BlockEPb
Line
Count
Source
737
6
                                                          bool* eos) {
738
6
    RETURN_IF_ERROR(OperatorX<LocalStateType>::_child->get_block_after_projects(state, block, eos));
739
6
    return pull(state, block, eos);
740
6
}
_ZN5doris18StreamingOperatorXINS_16SelectLocalStateEE14get_block_implEPNS_12RuntimeStateEPNS_5BlockEPb
Line
Count
Source
737
162
                                                          bool* eos) {
738
162
    RETURN_IF_ERROR(OperatorX<LocalStateType>::_child->get_block_after_projects(state, block, eos));
739
162
    return pull(state, block, eos);
740
162
}
741
742
template <typename LocalStateType>
743
Status StatefulOperatorX<LocalStateType>::get_block_impl(RuntimeState* state, Block* block,
744
23.4k
                                                         bool* eos) {
745
23.4k
    auto& local_state = get_local_state(state);
746
23.4k
    if (need_more_input_data(state)) {
747
23.0k
        local_state._child_block->clear_column_data(
748
23.0k
                OperatorX<LocalStateType>::_child->operator_row_desc_after_projection()
749
23.0k
                        .num_materialized_slots());
750
23.0k
        RETURN_IF_ERROR(OperatorX<LocalStateType>::_child->get_block_after_projects(
751
23.0k
                state, local_state._child_block.get(), &local_state._child_eos));
752
23.0k
        *eos = local_state._child_eos;
753
23.0k
        if (local_state._child_block->rows() == 0 && !local_state._child_eos) {
754
14.5k
            return Status::OK();
755
14.5k
        }
756
8.51k
        {
757
8.51k
            SCOPED_TIMER(local_state.exec_time_counter());
758
8.51k
            RETURN_IF_ERROR(push(state, local_state._child_block.get(), local_state._child_eos));
759
8.51k
        }
760
8.51k
    }
761
762
8.92k
    if (!need_more_input_data(state)) {
763
8.32k
        SCOPED_TIMER(local_state.exec_time_counter());
764
8.32k
        bool new_eos = false;
765
8.32k
        RETURN_IF_ERROR(pull(state, block, &new_eos));
766
8.32k
        if (new_eos) {
767
2.58k
            *eos = true;
768
5.73k
        } else if (!need_more_input_data(state)) {
769
293
            *eos = false;
770
293
        }
771
8.32k
    }
772
8.92k
    return Status::OK();
773
8.92k
}
_ZN5doris17StatefulOperatorXINS_23HashJoinProbeLocalStateEE14get_block_implEPNS_12RuntimeStateEPNS_5BlockEPb
Line
Count
Source
744
19.7k
                                                         bool* eos) {
745
19.7k
    auto& local_state = get_local_state(state);
746
19.7k
    if (need_more_input_data(state)) {
747
19.4k
        local_state._child_block->clear_column_data(
748
19.4k
                OperatorX<LocalStateType>::_child->operator_row_desc_after_projection()
749
19.4k
                        .num_materialized_slots());
750
19.4k
        RETURN_IF_ERROR(OperatorX<LocalStateType>::_child->get_block_after_projects(
751
19.4k
                state, local_state._child_block.get(), &local_state._child_eos));
752
19.4k
        *eos = local_state._child_eos;
753
19.4k
        if (local_state._child_block->rows() == 0 && !local_state._child_eos) {
754
13.1k
            return Status::OK();
755
13.1k
        }
756
6.22k
        {
757
6.22k
            SCOPED_TIMER(local_state.exec_time_counter());
758
6.22k
            RETURN_IF_ERROR(push(state, local_state._child_block.get(), local_state._child_eos));
759
6.22k
        }
760
6.22k
    }
761
762
6.57k
    if (!need_more_input_data(state)) {
763
6.57k
        SCOPED_TIMER(local_state.exec_time_counter());
764
6.57k
        bool new_eos = false;
765
6.57k
        RETURN_IF_ERROR(pull(state, block, &new_eos));
766
6.57k
        if (new_eos) {
767
1.23k
            *eos = true;
768
5.33k
        } else if (!need_more_input_data(state)) {
769
212
            *eos = false;
770
212
        }
771
6.57k
    }
772
6.56k
    return Status::OK();
773
6.56k
}
Unexecuted instantiation: _ZN5doris17StatefulOperatorXINS_34PartitionedHashJoinProbeLocalStateEE14get_block_implEPNS_12RuntimeStateEPNS_5BlockEPb
_ZN5doris17StatefulOperatorXINS_16RepeatLocalStateEE14get_block_implEPNS_12RuntimeStateEPNS_5BlockEPb
Line
Count
Source
744
29
                                                         bool* eos) {
745
29
    auto& local_state = get_local_state(state);
746
29
    if (need_more_input_data(state)) {
747
16
        local_state._child_block->clear_column_data(
748
16
                OperatorX<LocalStateType>::_child->operator_row_desc_after_projection()
749
16
                        .num_materialized_slots());
750
16
        RETURN_IF_ERROR(OperatorX<LocalStateType>::_child->get_block_after_projects(
751
16
                state, local_state._child_block.get(), &local_state._child_eos));
752
16
        *eos = local_state._child_eos;
753
16
        if (local_state._child_block->rows() == 0 && !local_state._child_eos) {
754
0
            return Status::OK();
755
0
        }
756
16
        {
757
16
            SCOPED_TIMER(local_state.exec_time_counter());
758
16
            RETURN_IF_ERROR(push(state, local_state._child_block.get(), local_state._child_eos));
759
16
        }
760
16
    }
761
762
29
    if (!need_more_input_data(state)) {
763
29
        SCOPED_TIMER(local_state.exec_time_counter());
764
29
        bool new_eos = false;
765
29
        RETURN_IF_ERROR(pull(state, block, &new_eos));
766
29
        if (new_eos) {
767
12
            *eos = true;
768
17
        } else if (!need_more_input_data(state)) {
769
13
            *eos = false;
770
13
        }
771
29
    }
772
29
    return Status::OK();
773
29
}
_ZN5doris17StatefulOperatorXINS_25MaterializationLocalStateEE14get_block_implEPNS_12RuntimeStateEPNS_5BlockEPb
Line
Count
Source
744
887
                                                         bool* eos) {
745
887
    auto& local_state = get_local_state(state);
746
887
    if (need_more_input_data(state)) {
747
887
        local_state._child_block->clear_column_data(
748
887
                OperatorX<LocalStateType>::_child->operator_row_desc_after_projection()
749
887
                        .num_materialized_slots());
750
887
        RETURN_IF_ERROR(OperatorX<LocalStateType>::_child->get_block_after_projects(
751
887
                state, local_state._child_block.get(), &local_state._child_eos));
752
887
        *eos = local_state._child_eos;
753
887
        if (local_state._child_block->rows() == 0 && !local_state._child_eos) {
754
355
            return Status::OK();
755
355
        }
756
532
        {
757
532
            SCOPED_TIMER(local_state.exec_time_counter());
758
532
            RETURN_IF_ERROR(push(state, local_state._child_block.get(), local_state._child_eos));
759
532
        }
760
532
    }
761
762
532
    if (!need_more_input_data(state)) {
763
532
        SCOPED_TIMER(local_state.exec_time_counter());
764
532
        bool new_eos = false;
765
532
        RETURN_IF_ERROR(pull(state, block, &new_eos));
766
532
        if (new_eos) {
767
356
            *eos = true;
768
356
        } else if (!need_more_input_data(state)) {
769
0
            *eos = false;
770
0
        }
771
532
    }
772
532
    return Status::OK();
773
532
}
_ZN5doris17StatefulOperatorXINS_22StreamingAggLocalStateEE14get_block_implEPNS_12RuntimeStateEPNS_5BlockEPb
Line
Count
Source
744
1.36k
                                                         bool* eos) {
745
1.36k
    auto& local_state = get_local_state(state);
746
1.36k
    if (need_more_input_data(state)) {
747
1.36k
        local_state._child_block->clear_column_data(
748
1.36k
                OperatorX<LocalStateType>::_child->operator_row_desc_after_projection()
749
1.36k
                        .num_materialized_slots());
750
1.36k
        RETURN_IF_ERROR(OperatorX<LocalStateType>::_child->get_block_after_projects(
751
1.36k
                state, local_state._child_block.get(), &local_state._child_eos));
752
1.36k
        *eos = local_state._child_eos;
753
1.36k
        if (local_state._child_block->rows() == 0 && !local_state._child_eos) {
754
827
            return Status::OK();
755
827
        }
756
539
        {
757
539
            SCOPED_TIMER(local_state.exec_time_counter());
758
539
            RETURN_IF_ERROR(push(state, local_state._child_block.get(), local_state._child_eos));
759
539
        }
760
539
    }
761
762
537
    if (!need_more_input_data(state)) {
763
152
        SCOPED_TIMER(local_state.exec_time_counter());
764
152
        bool new_eos = false;
765
152
        RETURN_IF_ERROR(pull(state, block, &new_eos));
766
152
        if (new_eos) {
767
151
            *eos = true;
768
151
        } else if (!need_more_input_data(state)) {
769
0
            *eos = false;
770
0
        }
771
152
    }
772
537
    return Status::OK();
773
537
}
_ZN5doris17StatefulOperatorXINS_30DistinctStreamingAggLocalStateEE14get_block_implEPNS_12RuntimeStateEPNS_5BlockEPb
Line
Count
Source
744
832
                                                         bool* eos) {
745
832
    auto& local_state = get_local_state(state);
746
834
    if (need_more_input_data(state)) {
747
834
        local_state._child_block->clear_column_data(
748
834
                OperatorX<LocalStateType>::_child->operator_row_desc_after_projection()
749
834
                        .num_materialized_slots());
750
834
        RETURN_IF_ERROR(OperatorX<LocalStateType>::_child->get_block_after_projects(
751
834
                state, local_state._child_block.get(), &local_state._child_eos));
752
834
        *eos = local_state._child_eos;
753
834
        if (local_state._child_block->rows() == 0 && !local_state._child_eos) {
754
82
            return Status::OK();
755
82
        }
756
752
        {
757
752
            SCOPED_TIMER(local_state.exec_time_counter());
758
752
            RETURN_IF_ERROR(push(state, local_state._child_block.get(), local_state._child_eos));
759
752
        }
760
752
    }
761
762
750
    if (!need_more_input_data(state)) {
763
546
        SCOPED_TIMER(local_state.exec_time_counter());
764
546
        bool new_eos = false;
765
546
        RETURN_IF_ERROR(pull(state, block, &new_eos));
766
546
        if (new_eos) {
767
545
            *eos = true;
768
545
        } else if (!need_more_input_data(state)) {
769
0
            *eos = false;
770
0
        }
771
546
    }
772
750
    return Status::OK();
773
750
}
_ZN5doris17StatefulOperatorXINS_29NestedLoopJoinProbeLocalStateEE14get_block_implEPNS_12RuntimeStateEPNS_5BlockEPb
Line
Count
Source
744
581
                                                         bool* eos) {
745
581
    auto& local_state = get_local_state(state);
746
581
    if (need_more_input_data(state)) {
747
519
        local_state._child_block->clear_column_data(
748
519
                OperatorX<LocalStateType>::_child->operator_row_desc_after_projection()
749
519
                        .num_materialized_slots());
750
519
        RETURN_IF_ERROR(OperatorX<LocalStateType>::_child->get_block_after_projects(
751
519
                state, local_state._child_block.get(), &local_state._child_eos));
752
519
        *eos = local_state._child_eos;
753
519
        if (local_state._child_block->rows() == 0 && !local_state._child_eos) {
754
89
            return Status::OK();
755
89
        }
756
430
        {
757
430
            SCOPED_TIMER(local_state.exec_time_counter());
758
430
            RETURN_IF_ERROR(push(state, local_state._child_block.get(), local_state._child_eos));
759
430
        }
760
430
    }
761
762
492
    if (!need_more_input_data(state)) {
763
468
        SCOPED_TIMER(local_state.exec_time_counter());
764
468
        bool new_eos = false;
765
468
        RETURN_IF_ERROR(pull(state, block, &new_eos));
766
468
        if (new_eos) {
767
270
            *eos = true;
768
270
        } else if (!need_more_input_data(state)) {
769
68
            *eos = false;
770
68
        }
771
468
    }
772
492
    return Status::OK();
773
492
}
_ZN5doris17StatefulOperatorXINS_23TableFunctionLocalStateEE14get_block_implEPNS_12RuntimeStateEPNS_5BlockEPb
Line
Count
Source
744
25
                                                         bool* eos) {
745
25
    auto& local_state = get_local_state(state);
746
25
    if (need_more_input_data(state)) {
747
25
        local_state._child_block->clear_column_data(
748
25
                OperatorX<LocalStateType>::_child->operator_row_desc_after_projection()
749
25
                        .num_materialized_slots());
750
25
        RETURN_IF_ERROR(OperatorX<LocalStateType>::_child->get_block_after_projects(
751
25
                state, local_state._child_block.get(), &local_state._child_eos));
752
25
        *eos = local_state._child_eos;
753
25
        if (local_state._child_block->rows() == 0 && !local_state._child_eos) {
754
0
            return Status::OK();
755
0
        }
756
25
        {
757
25
            SCOPED_TIMER(local_state.exec_time_counter());
758
25
            RETURN_IF_ERROR(push(state, local_state._child_block.get(), local_state._child_eos));
759
25
        }
760
25
    }
761
762
25
    if (!need_more_input_data(state)) {
763
25
        SCOPED_TIMER(local_state.exec_time_counter());
764
25
        bool new_eos = false;
765
25
        RETURN_IF_ERROR(pull(state, block, &new_eos));
766
25
        if (new_eos) {
767
18
            *eos = true;
768
18
        } else if (!need_more_input_data(state)) {
769
0
            *eos = false;
770
0
        }
771
25
    }
772
25
    return Status::OK();
773
25
}
774
775
template <typename Writer, typename Parent>
776
    requires(std::is_base_of_v<AsyncResultWriter, Writer>)
777
3.26k
Status AsyncWriterSink<Writer, Parent>::init(RuntimeState* state, LocalSinkStateInfo& info) {
778
3.26k
    RETURN_IF_ERROR(Base::init(state, info));
779
3.26k
    _async_writer_dependency = Dependency::create_shared(_parent->operator_id(), _parent->node_id(),
780
3.26k
                                                         "AsyncWriterDependency", true);
781
3.26k
    _writer.reset(new Writer(info.tsink, _output_vexpr_ctxs, _async_writer_dependency,
782
3.26k
                             _finish_dependency));
783
784
3.26k
    _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
785
3.26k
            common_profile(), "WaitForDependency[" + _async_writer_dependency->name() + "]Time", 1);
786
3.26k
    return Status::OK();
787
3.26k
}
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_17VFileResultWriterENS_23ResultFileSinkOperatorXEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_16VJdbcTableWriterENS_22JdbcTableSinkOperatorXEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
_ZN5doris15AsyncWriterSinkINS_13VTabletWriterENS_22OlapTableSinkOperatorXEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
777
2.96k
Status AsyncWriterSink<Writer, Parent>::init(RuntimeState* state, LocalSinkStateInfo& info) {
778
2.96k
    RETURN_IF_ERROR(Base::init(state, info));
779
2.96k
    _async_writer_dependency = Dependency::create_shared(_parent->operator_id(), _parent->node_id(),
780
2.96k
                                                         "AsyncWriterDependency", true);
781
2.96k
    _writer.reset(new Writer(info.tsink, _output_vexpr_ctxs, _async_writer_dependency,
782
2.96k
                             _finish_dependency));
783
784
2.96k
    _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
785
2.96k
            common_profile(), "WaitForDependency[" + _async_writer_dependency->name() + "]Time", 1);
786
2.96k
    return Status::OK();
787
2.96k
}
_ZN5doris15AsyncWriterSinkINS_15VTabletWriterV2ENS_24OlapTableSinkV2OperatorXEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Line
Count
Source
777
296
Status AsyncWriterSink<Writer, Parent>::init(RuntimeState* state, LocalSinkStateInfo& info) {
778
296
    RETURN_IF_ERROR(Base::init(state, info));
779
296
    _async_writer_dependency = Dependency::create_shared(_parent->operator_id(), _parent->node_id(),
780
296
                                                         "AsyncWriterDependency", true);
781
296
    _writer.reset(new Writer(info.tsink, _output_vexpr_ctxs, _async_writer_dependency,
782
296
                             _finish_dependency));
783
784
296
    _wait_for_dependency_timer = ADD_TIMER_WITH_LEVEL(
785
296
            common_profile(), "WaitForDependency[" + _async_writer_dependency->name() + "]Time", 1);
786
296
    return Status::OK();
787
296
}
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_16VHiveTableWriterENS_22HiveTableSinkOperatorXEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_19VIcebergTableWriterENS_25IcebergTableSinkOperatorXEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_19VIcebergTableWriterENS_30SpillIcebergTableSinkOperatorXEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_18VIcebergDeleteSinkENS_26IcebergDeleteSinkOperatorXEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_17VIcebergMergeSinkENS_25IcebergMergeSinkOperatorXEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_14VMCTableWriterENS_20MCTableSinkOperatorXEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_15VTVFTableWriterENS_21TVFTableSinkOperatorXEE4initEPNS_12RuntimeStateERNS_18LocalSinkStateInfoE
788
789
template <typename Writer, typename Parent>
790
    requires(std::is_base_of_v<AsyncResultWriter, Writer>)
791
3.24k
Status AsyncWriterSink<Writer, Parent>::open(RuntimeState* state) {
792
3.24k
    RETURN_IF_ERROR(Base::open(state));
793
3.24k
    _output_vexpr_ctxs.resize(_parent->cast<Parent>()._output_vexpr_ctxs.size());
794
29.3k
    for (size_t i = 0; i < _output_vexpr_ctxs.size(); i++) {
795
26.0k
        RETURN_IF_ERROR(
796
26.0k
                _parent->cast<Parent>()._output_vexpr_ctxs[i]->clone(state, _output_vexpr_ctxs[i]));
797
26.0k
    }
798
3.24k
    RETURN_IF_ERROR(_writer->start_writer(state, operator_profile()));
799
3.24k
    return Status::OK();
800
3.24k
}
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_17VFileResultWriterENS_23ResultFileSinkOperatorXEE4openEPNS_12RuntimeStateE
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_16VJdbcTableWriterENS_22JdbcTableSinkOperatorXEE4openEPNS_12RuntimeStateE
_ZN5doris15AsyncWriterSinkINS_13VTabletWriterENS_22OlapTableSinkOperatorXEE4openEPNS_12RuntimeStateE
Line
Count
Source
791
2.95k
Status AsyncWriterSink<Writer, Parent>::open(RuntimeState* state) {
792
2.95k
    RETURN_IF_ERROR(Base::open(state));
793
2.95k
    _output_vexpr_ctxs.resize(_parent->cast<Parent>()._output_vexpr_ctxs.size());
794
28.3k
    for (size_t i = 0; i < _output_vexpr_ctxs.size(); i++) {
795
25.3k
        RETURN_IF_ERROR(
796
25.3k
                _parent->cast<Parent>()._output_vexpr_ctxs[i]->clone(state, _output_vexpr_ctxs[i]));
797
25.3k
    }
798
2.95k
    RETURN_IF_ERROR(_writer->start_writer(state, operator_profile()));
799
2.95k
    return Status::OK();
800
2.95k
}
_ZN5doris15AsyncWriterSinkINS_15VTabletWriterV2ENS_24OlapTableSinkV2OperatorXEE4openEPNS_12RuntimeStateE
Line
Count
Source
791
292
Status AsyncWriterSink<Writer, Parent>::open(RuntimeState* state) {
792
292
    RETURN_IF_ERROR(Base::open(state));
793
292
    _output_vexpr_ctxs.resize(_parent->cast<Parent>()._output_vexpr_ctxs.size());
794
996
    for (size_t i = 0; i < _output_vexpr_ctxs.size(); i++) {
795
704
        RETURN_IF_ERROR(
796
704
                _parent->cast<Parent>()._output_vexpr_ctxs[i]->clone(state, _output_vexpr_ctxs[i]));
797
704
    }
798
292
    RETURN_IF_ERROR(_writer->start_writer(state, operator_profile()));
799
292
    return Status::OK();
800
292
}
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_16VHiveTableWriterENS_22HiveTableSinkOperatorXEE4openEPNS_12RuntimeStateE
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_19VIcebergTableWriterENS_25IcebergTableSinkOperatorXEE4openEPNS_12RuntimeStateE
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_19VIcebergTableWriterENS_30SpillIcebergTableSinkOperatorXEE4openEPNS_12RuntimeStateE
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_18VIcebergDeleteSinkENS_26IcebergDeleteSinkOperatorXEE4openEPNS_12RuntimeStateE
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_17VIcebergMergeSinkENS_25IcebergMergeSinkOperatorXEE4openEPNS_12RuntimeStateE
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_14VMCTableWriterENS_20MCTableSinkOperatorXEE4openEPNS_12RuntimeStateE
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_15VTVFTableWriterENS_21TVFTableSinkOperatorXEE4openEPNS_12RuntimeStateE
801
802
template <typename Writer, typename Parent>
803
    requires(std::is_base_of_v<AsyncResultWriter, Writer>)
804
5.20k
Status AsyncWriterSink<Writer, Parent>::sink(RuntimeState* state, Block* block, bool eos) {
805
5.20k
    return _writer->sink(block, eos);
806
5.20k
}
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_17VFileResultWriterENS_23ResultFileSinkOperatorXEE4sinkEPNS_12RuntimeStateEPNS_5BlockEb
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_16VJdbcTableWriterENS_22JdbcTableSinkOperatorXEE4sinkEPNS_12RuntimeStateEPNS_5BlockEb
_ZN5doris15AsyncWriterSinkINS_13VTabletWriterENS_22OlapTableSinkOperatorXEE4sinkEPNS_12RuntimeStateEPNS_5BlockEb
Line
Count
Source
804
4.92k
Status AsyncWriterSink<Writer, Parent>::sink(RuntimeState* state, Block* block, bool eos) {
805
4.92k
    return _writer->sink(block, eos);
806
4.92k
}
_ZN5doris15AsyncWriterSinkINS_15VTabletWriterV2ENS_24OlapTableSinkV2OperatorXEE4sinkEPNS_12RuntimeStateEPNS_5BlockEb
Line
Count
Source
804
280
Status AsyncWriterSink<Writer, Parent>::sink(RuntimeState* state, Block* block, bool eos) {
805
280
    return _writer->sink(block, eos);
806
280
}
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_16VHiveTableWriterENS_22HiveTableSinkOperatorXEE4sinkEPNS_12RuntimeStateEPNS_5BlockEb
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_19VIcebergTableWriterENS_25IcebergTableSinkOperatorXEE4sinkEPNS_12RuntimeStateEPNS_5BlockEb
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_19VIcebergTableWriterENS_30SpillIcebergTableSinkOperatorXEE4sinkEPNS_12RuntimeStateEPNS_5BlockEb
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_18VIcebergDeleteSinkENS_26IcebergDeleteSinkOperatorXEE4sinkEPNS_12RuntimeStateEPNS_5BlockEb
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_17VIcebergMergeSinkENS_25IcebergMergeSinkOperatorXEE4sinkEPNS_12RuntimeStateEPNS_5BlockEb
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_14VMCTableWriterENS_20MCTableSinkOperatorXEE4sinkEPNS_12RuntimeStateEPNS_5BlockEb
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_15VTVFTableWriterENS_21TVFTableSinkOperatorXEE4sinkEPNS_12RuntimeStateEPNS_5BlockEb
807
808
template <typename Writer, typename Parent>
809
    requires(std::is_base_of_v<AsyncResultWriter, Writer>)
810
3.24k
Status AsyncWriterSink<Writer, Parent>::close(RuntimeState* state, Status exec_status) {
811
3.24k
    if (_closed) {
812
0
        return Status::OK();
813
0
    }
814
3.24k
    COUNTER_SET(_wait_for_dependency_timer, _async_writer_dependency->watcher_elapse_time());
815
3.24k
    COUNTER_SET(_wait_for_finish_dependency_timer, _finish_dependency->watcher_elapse_time());
816
    // if the init failed, the _writer may be nullptr. so here need check
817
3.24k
    if (_writer) {
818
3.24k
        Status st = _writer->get_writer_status();
819
3.24k
        if (exec_status.ok()) {
820
3.22k
            _writer->force_close(state->is_cancelled() ? state->cancel_reason()
821
3.22k
                                                       : Status::Cancelled("force close"));
822
3.22k
        } else {
823
18
            _writer->force_close(exec_status);
824
18
        }
825
        // If there is an error in process_block thread, then we should get the writer
826
        // status before call force_close. For example, the thread may failed in commit
827
        // transaction.
828
3.24k
        RETURN_IF_ERROR(st);
829
3.24k
    }
830
3.24k
    return Base::close(state, exec_status);
831
3.24k
}
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_17VFileResultWriterENS_23ResultFileSinkOperatorXEE5closeEPNS_12RuntimeStateENS_6StatusE
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_16VJdbcTableWriterENS_22JdbcTableSinkOperatorXEE5closeEPNS_12RuntimeStateENS_6StatusE
_ZN5doris15AsyncWriterSinkINS_13VTabletWriterENS_22OlapTableSinkOperatorXEE5closeEPNS_12RuntimeStateENS_6StatusE
Line
Count
Source
810
2.95k
Status AsyncWriterSink<Writer, Parent>::close(RuntimeState* state, Status exec_status) {
811
2.95k
    if (_closed) {
812
0
        return Status::OK();
813
0
    }
814
2.95k
    COUNTER_SET(_wait_for_dependency_timer, _async_writer_dependency->watcher_elapse_time());
815
2.95k
    COUNTER_SET(_wait_for_finish_dependency_timer, _finish_dependency->watcher_elapse_time());
816
    // if the init failed, the _writer may be nullptr. so here need check
817
2.95k
    if (_writer) {
818
2.95k
        Status st = _writer->get_writer_status();
819
2.95k
        if (exec_status.ok()) {
820
2.94k
            _writer->force_close(state->is_cancelled() ? state->cancel_reason()
821
2.94k
                                                       : Status::Cancelled("force close"));
822
2.94k
        } else {
823
10
            _writer->force_close(exec_status);
824
10
        }
825
        // If there is an error in process_block thread, then we should get the writer
826
        // status before call force_close. For example, the thread may failed in commit
827
        // transaction.
828
2.95k
        RETURN_IF_ERROR(st);
829
2.95k
    }
830
2.95k
    return Base::close(state, exec_status);
831
2.95k
}
_ZN5doris15AsyncWriterSinkINS_15VTabletWriterV2ENS_24OlapTableSinkV2OperatorXEE5closeEPNS_12RuntimeStateENS_6StatusE
Line
Count
Source
810
288
Status AsyncWriterSink<Writer, Parent>::close(RuntimeState* state, Status exec_status) {
811
288
    if (_closed) {
812
0
        return Status::OK();
813
0
    }
814
288
    COUNTER_SET(_wait_for_dependency_timer, _async_writer_dependency->watcher_elapse_time());
815
288
    COUNTER_SET(_wait_for_finish_dependency_timer, _finish_dependency->watcher_elapse_time());
816
    // if the init failed, the _writer may be nullptr. so here need check
817
288
    if (_writer) {
818
288
        Status st = _writer->get_writer_status();
819
288
        if (exec_status.ok()) {
820
280
            _writer->force_close(state->is_cancelled() ? state->cancel_reason()
821
280
                                                       : Status::Cancelled("force close"));
822
280
        } else {
823
8
            _writer->force_close(exec_status);
824
8
        }
825
        // If there is an error in process_block thread, then we should get the writer
826
        // status before call force_close. For example, the thread may failed in commit
827
        // transaction.
828
288
        RETURN_IF_ERROR(st);
829
288
    }
830
288
    return Base::close(state, exec_status);
831
288
}
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_16VHiveTableWriterENS_22HiveTableSinkOperatorXEE5closeEPNS_12RuntimeStateENS_6StatusE
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_19VIcebergTableWriterENS_25IcebergTableSinkOperatorXEE5closeEPNS_12RuntimeStateENS_6StatusE
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_19VIcebergTableWriterENS_30SpillIcebergTableSinkOperatorXEE5closeEPNS_12RuntimeStateENS_6StatusE
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_18VIcebergDeleteSinkENS_26IcebergDeleteSinkOperatorXEE5closeEPNS_12RuntimeStateENS_6StatusE
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_17VIcebergMergeSinkENS_25IcebergMergeSinkOperatorXEE5closeEPNS_12RuntimeStateENS_6StatusE
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_14VMCTableWriterENS_20MCTableSinkOperatorXEE5closeEPNS_12RuntimeStateENS_6StatusE
Unexecuted instantiation: _ZN5doris15AsyncWriterSinkINS_15VTVFTableWriterENS_21TVFTableSinkOperatorXEE5closeEPNS_12RuntimeStateENS_6StatusE
832
833
// An instantiation added outside the macros below needs the matching
834
// 'extern template' declaration in the operator's header (enforced by
835
// build-support/check-extern-template-pairing.py). Instantiations expanded
836
// through DECLARE_OPERATOR are invisible to that check -- macro bodies are
837
// skipped -- so their extern pairing has to be kept in sync by hand.
838
#define DECLARE_OPERATOR(LOCAL_STATE) template class DataSinkOperatorX<LOCAL_STATE>;
839
DECLARE_OPERATOR(HashJoinBuildSinkLocalState)
840
DECLARE_OPERATOR(ResultSinkLocalState)
841
DECLARE_OPERATOR(JdbcTableSinkLocalState)
842
DECLARE_OPERATOR(MemoryScratchSinkLocalState)
843
DECLARE_OPERATOR(ResultFileSinkLocalState)
844
DECLARE_OPERATOR(OlapTableSinkLocalState)
845
DECLARE_OPERATOR(OlapTableSinkV2LocalState)
846
DECLARE_OPERATOR(HiveTableSinkLocalState)
847
DECLARE_OPERATOR(TVFTableSinkLocalState)
848
DECLARE_OPERATOR(IcebergTableSinkLocalState)
849
DECLARE_OPERATOR(SpillIcebergTableSinkLocalState)
850
DECLARE_OPERATOR(IcebergDeleteSinkLocalState)
851
DECLARE_OPERATOR(IcebergMergeSinkLocalState)
852
DECLARE_OPERATOR(MCTableSinkLocalState)
853
DECLARE_OPERATOR(AnalyticSinkLocalState)
854
DECLARE_OPERATOR(BlackholeSinkLocalState)
855
DECLARE_OPERATOR(SortSinkLocalState)
856
DECLARE_OPERATOR(SpillSortSinkLocalState)
857
DECLARE_OPERATOR(LocalExchangeSinkLocalState)
858
DECLARE_OPERATOR(AggSinkLocalState)
859
DECLARE_OPERATOR(BucketedAggSinkLocalState)
860
DECLARE_OPERATOR(PartitionedAggSinkLocalState)
861
DECLARE_OPERATOR(ExchangeSinkLocalState)
862
DECLARE_OPERATOR(NestedLoopJoinBuildSinkLocalState)
863
DECLARE_OPERATOR(UnionSinkLocalState)
864
DECLARE_OPERATOR(MultiCastDataStreamSinkLocalState)
865
DECLARE_OPERATOR(PartitionSortSinkLocalState)
866
DECLARE_OPERATOR(SetProbeSinkLocalState<true>)
867
DECLARE_OPERATOR(SetProbeSinkLocalState<false>)
868
DECLARE_OPERATOR(SetSinkLocalState<true>)
869
DECLARE_OPERATOR(SetSinkLocalState<false>)
870
DECLARE_OPERATOR(PartitionedHashJoinSinkLocalState)
871
DECLARE_OPERATOR(GroupCommitBlockSinkLocalState)
872
DECLARE_OPERATOR(CacheSinkLocalState)
873
DECLARE_OPERATOR(DictSinkLocalState)
874
DECLARE_OPERATOR(RecCTESinkLocalState)
875
DECLARE_OPERATOR(RecCTEAnchorSinkLocalState)
876
877
#undef DECLARE_OPERATOR
878
879
#define DECLARE_OPERATOR(LOCAL_STATE) template class OperatorX<LOCAL_STATE>;
880
DECLARE_OPERATOR(HashJoinProbeLocalState)
881
DECLARE_OPERATOR(OlapScanLocalState)
882
DECLARE_OPERATOR(GroupCommitLocalState)
883
DECLARE_OPERATOR(JDBCScanLocalState)
884
DECLARE_OPERATOR(FileScanLocalState)
885
DECLARE_OPERATOR(AnalyticLocalState)
886
DECLARE_OPERATOR(SortLocalState)
887
DECLARE_OPERATOR(SpillSortLocalState)
888
DECLARE_OPERATOR(LocalMergeSortLocalState)
889
DECLARE_OPERATOR(AggLocalState)
890
DECLARE_OPERATOR(BucketedAggLocalState)
891
DECLARE_OPERATOR(PartitionedAggLocalState)
892
DECLARE_OPERATOR(TableFunctionLocalState)
893
DECLARE_OPERATOR(ExchangeLocalState)
894
DECLARE_OPERATOR(RepeatLocalState)
895
DECLARE_OPERATOR(NestedLoopJoinProbeLocalState)
896
DECLARE_OPERATOR(AssertNumRowsLocalState)
897
DECLARE_OPERATOR(EmptySetLocalState)
898
DECLARE_OPERATOR(UnionSourceLocalState)
899
DECLARE_OPERATOR(MultiCastDataStreamSourceLocalState)
900
DECLARE_OPERATOR(PartitionSortSourceLocalState)
901
DECLARE_OPERATOR(SetSourceLocalState<true>)
902
DECLARE_OPERATOR(SetSourceLocalState<false>)
903
DECLARE_OPERATOR(DataGenLocalState)
904
DECLARE_OPERATOR(SchemaScanLocalState)
905
DECLARE_OPERATOR(MetaScanLocalState)
906
DECLARE_OPERATOR(LocalExchangeSourceLocalState)
907
DECLARE_OPERATOR(PartitionedHashJoinProbeLocalState)
908
DECLARE_OPERATOR(CacheSourceLocalState)
909
DECLARE_OPERATOR(RecCTESourceLocalState)
910
DECLARE_OPERATOR(RecCTEScanLocalState)
911
912
#ifdef BE_TEST
913
DECLARE_OPERATOR(MockLocalState)
914
DECLARE_OPERATOR(MockScanLocalState)
915
#endif
916
#undef DECLARE_OPERATOR
917
918
template class StreamingOperatorX<AssertNumRowsLocalState>;
919
template class StreamingOperatorX<SelectLocalState>;
920
921
template class StatefulOperatorX<HashJoinProbeLocalState>;
922
template class StatefulOperatorX<PartitionedHashJoinProbeLocalState>;
923
template class StatefulOperatorX<RepeatLocalState>;
924
template class StatefulOperatorX<MaterializationLocalState>;
925
template class StatefulOperatorX<StreamingAggLocalState>;
926
template class StatefulOperatorX<DistinctStreamingAggLocalState>;
927
template class StatefulOperatorX<NestedLoopJoinProbeLocalState>;
928
template class StatefulOperatorX<TableFunctionLocalState>;
929
930
template class PipelineXSinkLocalState<HashJoinSharedState>;
931
template class PipelineXSinkLocalState<PartitionedHashJoinSharedState>;
932
template class PipelineXSinkLocalState<SortSharedState>;
933
template class PipelineXSinkLocalState<SpillSortSharedState>;
934
template class PipelineXSinkLocalState<NestedLoopJoinSharedState>;
935
template class PipelineXSinkLocalState<AnalyticSharedState>;
936
template class PipelineXSinkLocalState<AggSharedState>;
937
template class PipelineXSinkLocalState<BucketedAggSharedState>;
938
template class PipelineXSinkLocalState<PartitionedAggSharedState>;
939
template class PipelineXSinkLocalState<FakeSharedState>;
940
template class PipelineXSinkLocalState<UnionSharedState>;
941
template class PipelineXSinkLocalState<PartitionSortNodeSharedState>;
942
template class PipelineXSinkLocalState<MultiCastSharedState>;
943
template class PipelineXSinkLocalState<SetSharedState>;
944
template class PipelineXSinkLocalState<LocalExchangeSharedState>;
945
template class PipelineXSinkLocalState<BasicSharedState>;
946
template class PipelineXSinkLocalState<DataQueueSharedState>;
947
template class PipelineXSinkLocalState<RecCTESharedState>;
948
949
template class PipelineXLocalState<HashJoinSharedState>;
950
template class PipelineXLocalState<PartitionedHashJoinSharedState>;
951
template class PipelineXLocalState<SortSharedState>;
952
template class PipelineXLocalState<SpillSortSharedState>;
953
template class PipelineXLocalState<NestedLoopJoinSharedState>;
954
template class PipelineXLocalState<AnalyticSharedState>;
955
template class PipelineXLocalState<AggSharedState>;
956
template class PipelineXLocalState<BucketedAggSharedState>;
957
template class PipelineXLocalState<PartitionedAggSharedState>;
958
template class PipelineXLocalState<FakeSharedState>;
959
template class PipelineXLocalState<UnionSharedState>;
960
template class PipelineXLocalState<DataQueueSharedState>;
961
template class PipelineXLocalState<MultiCastSharedState>;
962
template class PipelineXLocalState<PartitionSortNodeSharedState>;
963
template class PipelineXLocalState<SetSharedState>;
964
template class PipelineXLocalState<LocalExchangeSharedState>;
965
template class PipelineXLocalState<BasicSharedState>;
966
template class PipelineXLocalState<RecCTESharedState>;
967
968
template class AsyncWriterSink<doris::VFileResultWriter, ResultFileSinkOperatorX>;
969
template class AsyncWriterSink<doris::VJdbcTableWriter, JdbcTableSinkOperatorX>;
970
template class AsyncWriterSink<doris::VTabletWriter, OlapTableSinkOperatorX>;
971
template class AsyncWriterSink<doris::VTabletWriterV2, OlapTableSinkV2OperatorX>;
972
template class AsyncWriterSink<doris::VHiveTableWriter, HiveTableSinkOperatorX>;
973
template class AsyncWriterSink<doris::VIcebergTableWriter, IcebergTableSinkOperatorX>;
974
template class AsyncWriterSink<doris::VIcebergTableWriter, SpillIcebergTableSinkOperatorX>;
975
template class AsyncWriterSink<doris::VIcebergDeleteSink, IcebergDeleteSinkOperatorX>;
976
template class AsyncWriterSink<doris::VIcebergMergeSink, IcebergMergeSinkOperatorX>;
977
template class AsyncWriterSink<doris::VMCTableWriter, MCTableSinkOperatorX>;
978
template class AsyncWriterSink<doris::VTVFTableWriter, TVFTableSinkOperatorX>;
979
980
#ifdef BE_TEST
981
template class OperatorX<DummyOperatorLocalState>;
982
template class DataSinkOperatorX<DummySinkLocalState>;
983
#endif
984
985
} // namespace doris