| 701 | } |
| 702 | |
| 703 | Status PartitionedHashJoinNode::OutputUnmatchedBuild(RowBatch* out_batch) { |
| 704 | SCOPED_TIMER(probe_timer_); |
| 705 | DCHECK(NeedToProcessUnmatchedBuildRows(join_op_)); |
| 706 | DCHECK(!output_build_partitions_.empty()); |
| 707 | DCHECK_ENUM_EQ(probe_state_, ProbeState::OUTPUTTING_UNMATCHED); |
| 708 | |
| 709 | if (output_unmatched_batch_iter_.get() != nullptr) { |
| 710 | // There were no probe rows so we skipped building the hash table. In this case, all |
| 711 | // build rows of the partition are unmatched. |
| 712 | RETURN_IF_ERROR(OutputAllBuild(out_batch)); |
| 713 | } else { |
| 714 | // We built and processed the hash table, so sweep over it and output unmatched rows. |
| 715 | OutputUnmatchedBuildFromHashTable(out_batch); |
| 716 | } |
| 717 | |
| 718 | return Status::OK(); |
| 719 | } |
| 720 | |
| 721 | Status PartitionedHashJoinNode::OutputAllBuild(RowBatch* out_batch) { |
| 722 | DCHECK_ENUM_EQ(probe_state_, ProbeState::OUTPUTTING_UNMATCHED); |
nothing calls this directly
no test coverage detected