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

Method GetStructValInterpreted

be/src/exprs/slot-ref.cc:560–579  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

558}
559
560StructVal SlotRef::GetStructValInterpreted(
561 ScalarExprEvaluator* eval, const TupleRow* row) const {
562 DCHECK(type_.IsStructType() && children_.size() > 0);
563 DCHECK_EQ(children_.size(), eval->GetChildEvaluators().size());
564 Tuple* t = row->GetTuple(tuple_idx_);
565 if (t == nullptr || t->IsNull(null_indicator_offset_)) return StructVal::null();
566
567 FunctionContext* fn_ctx = eval->fn_context(fn_ctx_idx_);
568 DCHECK(fn_ctx != nullptr);
569 StructVal struct_val(fn_ctx, children_.size());
570 vector<ScalarExprEvaluator*>& child_evaluators = eval->GetChildEvaluators();
571 for (int i = 0; i < child_evaluators.size(); ++i) {
572 ScalarExpr* child_expr = children_[i];
573 ScalarExprEvaluator* child_eval = child_evaluators[i];
574 DCHECK(child_eval != nullptr);
575 void* child_val = child_eval->GetValue(*child_expr, row);
576 struct_val.addChild(child_val, i);
577 }
578 return struct_val;
579}
580
581const TupleDescriptor* SlotRef::GetCollectionTupleDesc() const {
582 return slot_desc_->children_tuple_descriptor();

Callers

nothing calls this directly

Calls 7

IsStructTypeMethod · 0.80
fn_contextMethod · 0.80
sizeMethod · 0.45
GetTupleMethod · 0.45
IsNullMethod · 0.45
GetValueMethod · 0.45
addChildMethod · 0.45

Tested by

no test coverage detected