| 1019 | } |
| 1020 | |
| 1021 | Status GroupingAggregator::PushSpilledPartition(Partition* partition) { |
| 1022 | DCHECK(partition->is_spilled()); |
| 1023 | DCHECK(partition->hash_tbl == nullptr); |
| 1024 | // Ensure all pages in the spilled partition's streams are unpinned by invalidating |
| 1025 | // the streams' read and write iterators. We may need all the memory to process the |
| 1026 | // next spilled partitions. |
| 1027 | RETURN_IF_ERROR( |
| 1028 | partition->aggregated_row_stream->UnpinStream(BufferedTupleStream::UNPIN_ALL)); |
| 1029 | RETURN_IF_ERROR( |
| 1030 | partition->unaggregated_row_stream->UnpinStream(BufferedTupleStream::UNPIN_ALL)); |
| 1031 | spilled_partitions_.push_front(partition); |
| 1032 | return Status::OK(); |
| 1033 | } |
| 1034 | |
| 1035 | void GroupingAggregator::ClosePartitions() { |
| 1036 | // Iterate through the remaining rows in the hash table and call Serialize/Finalize on |
nothing calls this directly
no test coverage detected