| 419 | } |
| 420 | |
| 421 | Future<> WhenBuffered(const std::vector<int>& row_groups, |
| 422 | const std::vector<int>& column_indices) const { |
| 423 | if (!cached_source_) { |
| 424 | return Status::Invalid("Must call PreBuffer before WhenBuffered"); |
| 425 | } |
| 426 | std::vector<::arrow::io::ReadRange> ranges; |
| 427 | for (int row : row_groups) { |
| 428 | for (int col : column_indices) { |
| 429 | ranges.push_back( |
| 430 | ComputeColumnChunkRange(file_metadata_.get(), source_size_, row, col)); |
| 431 | } |
| 432 | } |
| 433 | return cached_source_->WaitFor(ranges); |
| 434 | } |
| 435 | |
| 436 | // Metadata/footer parsing. Divided up to separate sync/async paths, and to use |
| 437 | // exceptions for error handling (with the async path converting to Future/Status). |
nothing calls this directly
no test coverage detected