| 162 | } |
| 163 | |
| 164 | string BufferedTupleStream::DebugString() const { |
| 165 | stringstream ss; |
| 166 | ss << "BufferedTupleStream num_rows=" << num_rows_ << " pinned=" << pinned_ |
| 167 | << " closed=" << closed_ << "\n" |
| 168 | << " bytes_pinned=" << bytes_pinned_ << " has_write_iterator=" << has_write_iterator_ |
| 169 | << " write_page=" << write_page_ << " read_iterator=" << read_it_.DebugString(pages_) |
| 170 | << "\n" |
| 171 | << " read_page_reservation="; |
| 172 | if (read_page_reservation_.is_closed()) { |
| 173 | ss << "<closed>"; |
| 174 | } else { |
| 175 | ss << read_page_reservation_.GetReservation(); |
| 176 | } |
| 177 | ss << " large_read_page_reservation="; |
| 178 | if (large_read_page_reservation_.is_closed()) { |
| 179 | ss << "<closed>"; |
| 180 | } else { |
| 181 | ss << large_read_page_reservation_.GetReservation(); |
| 182 | } |
| 183 | ss << " write_page_reservation="; |
| 184 | if (write_page_reservation_.is_closed()) { |
| 185 | ss << "<closed>"; |
| 186 | } else { |
| 187 | ss << write_page_reservation_.GetReservation(); |
| 188 | } |
| 189 | int64_t max_page = min(num_pages_, BufferedTupleStream::MAX_PAGE_ITER_DEBUG); |
| 190 | ss << "\n " << max_page << " out of " << num_pages_ << " pages=[\n"; |
| 191 | for (auto page = pages_.begin(); (page != pages_.end()) && (max_page > 0); ++page) { |
| 192 | ss << "{" << page->DebugString() << "}"; |
| 193 | max_page--; |
| 194 | if (max_page > 0) ss << ",\n"; |
| 195 | } |
| 196 | ss << "]"; |
| 197 | return ss.str(); |
| 198 | } |
| 199 | |
| 200 | void BufferedTupleStream::Page::AttachBufferToBatch( |
| 201 | BufferedTupleStream* parent, RowBatch* batch, FlushMode flush) { |
no test coverage detected