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

Method InvalidateReadIterator

be/src/runtime/buffered-tuple-stream.cc:588–609  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

586}
587
588void BufferedTupleStream::InvalidateReadIterator() {
589 int64_t rows_returned = read_it_.rows_returned();
590 if (read_it_.read_page_ != pages_.end()) {
591 // Unpin the write page if we're reading in unpinned mode.
592 Page* prev_read_page = &*read_it_.read_page_;
593 read_it_.Reset(&pages_);
594
595 // May need to decrement pin count after destroying read iterator.
596 UnpinPageIfNeeded(prev_read_page, pinned_);
597 } else {
598 read_it_.Reset(&pages_);
599 }
600 if (read_page_reservation_.GetReservation() > 0) {
601 buffer_pool_client_->RestoreReservation(&read_page_reservation_, default_page_len_);
602 }
603 // It is safe to re-read an attach-on-read stream if no rows were read and no pages
604 // were therefore deleted.
605 DCHECK(read_it_.attach_on_read_ == false || rows_returned == 0);
606 if (rows_returned == 0 && read_it_.attach_on_read_) {
607 read_it_.attach_on_read_ = false;
608 }
609}
610
611void BufferedTupleStream::DoneWriting() {
612 CHECK_CONSISTENCY_FULL(read_it_);

Callers

nothing calls this directly

Calls 5

RestoreReservationMethod · 0.80
rows_returnedMethod · 0.45
endMethod · 0.45
ResetMethod · 0.45
GetReservationMethod · 0.45

Tested by

no test coverage detected