MCPcopy Create free account
hub / github.com/apache/impala / Prepare

Method Prepare

be/src/exec/scan-node.cc:149–176  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

147}
148
149Status ScanNode::Prepare(RuntimeState* state) {
150 SCOPED_TIMER(runtime_profile_->total_time_counter());
151 runtime_state_ = state;
152 RETURN_IF_ERROR(ExecNode::Prepare(state));
153
154 for (const TRuntimeFilterDesc& filter_desc : plan_node_.tnode_->runtime_filters) {
155 filter_ctxs_.emplace_back();
156 FilterContext& filter_ctx = filter_ctxs_.back();
157 filter_ctx.filter = state->filter_bank()->RegisterConsumer(filter_desc);
158 string filter_profile_title =
159 Substitute("$0$1 ($2)", RuntimeProfile::PREFIX_FILTER, filter_desc.filter_id,
160 PrettyPrinter::Print(filter_ctx.filter->filter_size(), TUnit::BYTES));
161 RuntimeProfile* profile =
162 RuntimeProfile::Create(state->obj_pool(), filter_profile_title, false);
163 runtime_profile_->AddChild(profile);
164 filter_ctx.stats = state->obj_pool()->Add(new FilterStats(profile));
165 }
166
167 rows_read_counter_ = PROFILE_RowsRead.Instantiate(runtime_profile());
168 materialize_tuple_timer_ = PROFILE_MaterializeTupleTime.Instantiate(runtime_profile());
169
170 DCHECK_EQ(filter_exprs_.size(), filter_ctxs_.size());
171 for (int i = 0; i < filter_exprs_.size(); ++i) {
172 RETURN_IF_ERROR(ScalarExprEvaluator::Create(*filter_exprs_[i], state, pool_,
173 expr_perm_pool(), expr_results_pool(), &filter_ctxs_[i].expr_eval));
174 }
175 return Status::OK();
176}
177
178void ScanNode::AddBytesReadCounters() {
179 bytes_read_counter_ = PROFILE_BytesRead.Instantiate(runtime_profile());

Callers

nothing calls this directly

Calls 15

SubstituteFunction · 0.85
CreateClass · 0.85
OKFunction · 0.85
total_time_counterMethod · 0.80
RegisterConsumerMethod · 0.80
filter_sizeMethod · 0.80
AddChildMethod · 0.80
RegisterScanMethod · 0.80
scanner_mem_limiterMethod · 0.80
filter_bankMethod · 0.45
obj_poolMethod · 0.45
AddMethod · 0.45

Tested by

no test coverage detected