| 859 | } |
| 860 | |
| 861 | void PhjBuilder::CleanUpSinglePartition( |
| 862 | deque<unique_ptr<PhjBuilderPartition>>* output_partitions, RowBatch* batch) { |
| 863 | SCOPED_TIMER(profile()->total_time_counter()); |
| 864 | if (NeedToProcessUnmatchedBuildRows(join_op_)) { |
| 865 | DCHECK_LE(num_probe_threads_, 1) |
| 866 | << "Don't support returning build partitions with shared build"; |
| 867 | // If the build partition was in memory, we are done probing this partition. |
| 868 | // In case of right-outer, right-anti and full-outer joins, we move this partition |
| 869 | // to the list of partitions that we need to output their unmatched build rows. |
| 870 | output_partitions->push_back(std::move(spilled_partitions_.back())); |
| 871 | } else { |
| 872 | // In any other case, just close the input build partition. |
| 873 | spilled_partitions_.back()->Close(IsLeftSemiJoin(join_op_) ? nullptr : batch); |
| 874 | } |
| 875 | spilled_partitions_.pop_back(); |
| 876 | } |
| 877 | |
| 878 | Status PhjBuilder::BeginNullAwareProbe() { |
| 879 | DCHECK(null_aware_partition_ != nullptr); |
nothing calls this directly
no test coverage detected