| 255 | } |
| 256 | |
| 257 | Status PartitionedHashJoinNode::Reset(RuntimeState* state, RowBatch* row_batch) { |
| 258 | if (join_op_ == TJoinOp::NULL_AWARE_LEFT_ANTI_JOIN) { |
| 259 | null_probe_output_idx_ = -1; |
| 260 | matched_null_probe_.clear(); |
| 261 | } |
| 262 | ht_ctx_->set_level(0); |
| 263 | CloseAndDeletePartitions(row_batch); |
| 264 | builder_->Reset(IsLeftSemiJoin(join_op_) ? nullptr : row_batch); |
| 265 | memset(hash_tbls_, 0, sizeof(HashTable*) * PARTITION_FANOUT); |
| 266 | if (output_unmatched_batch_ != nullptr) { |
| 267 | output_unmatched_batch_->TransferResourceOwnership(row_batch); |
| 268 | } |
| 269 | output_unmatched_batch_.reset(); |
| 270 | output_unmatched_batch_iter_.reset(); |
| 271 | flushed_unattachable_build_buffers_ = false; |
| 272 | return BlockingJoinNode::Reset(state, row_batch); |
| 273 | } |
| 274 | |
| 275 | void PartitionedHashJoinNode::CloseAndDeletePartitions(RowBatch* row_batch) { |
| 276 | // Close all the partitions and clean up all references to them. |
no test coverage detected