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

Method ProcessUnmatchedProbeRow

be/src/exec/nested-loop-join-node.cc:541–564  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

539}
540
541Status NestedLoopJoinNode::ProcessUnmatchedProbeRow(RuntimeState* state,
542 RowBatch* output_batch) {
543 DCHECK(!matched_probe_);
544 DCHECK(current_probe_row_ != NULL);
545 ScalarExprEvaluator* const* conjunct_evals = conjunct_evals_.data();
546 size_t num_conjuncts = conjuncts_.size();
547 DCHECK_EQ(num_conjuncts, conjunct_evals_.size());
548 TupleRow* output_row = output_batch->GetRow(output_batch->AddRow());
549 if (join_op_ == TJoinOp::LEFT_OUTER_JOIN || join_op_ == TJoinOp::FULL_OUTER_JOIN) {
550 CreateOutputRow(output_row, current_probe_row_, NULL);
551 } else {
552 DCHECK(join_op_ == TJoinOp::LEFT_ANTI_JOIN) << "Unsupported join operator: " <<
553 join_op_;
554 output_batch->CopyRow(current_probe_row_, output_row);
555 }
556 // Evaluate all the other (non-join) conjuncts.
557 if (EvalConjuncts(conjunct_evals, num_conjuncts, output_row)) {
558 VLOG_ROW << "match row:" << PrintRow(output_row, *row_desc());
559 output_batch->CommitLastRow();
560 IncrementNumRowsReturned(1);
561 if (ReachedLimit()) eos_ = true;
562 }
563 return Status::OK();
564}
565
566Status NestedLoopJoinNode::ProcessUnmatchedBuildRows(
567 RuntimeState* state, RowBatch* output_batch) {

Callers

nothing calls this directly

Calls 8

PrintRowFunction · 0.85
OKFunction · 0.85
CopyRowMethod · 0.80
CommitLastRowMethod · 0.80
dataMethod · 0.45
sizeMethod · 0.45
GetRowMethod · 0.45
AddRowMethod · 0.45

Tested by

no test coverage detected