| 318 | void Close() override {} |
| 319 | |
| 320 | std::shared_ptr<RowGroupReader> GetRowGroup(int i) override { |
| 321 | std::shared_ptr<Buffer> prebuffered_column_chunks_bitmap; |
| 322 | // Avoid updating the bitmap as this function can be called concurrently. The bitmap |
| 323 | // can only be updated within Prebuffer(). |
| 324 | auto prebuffered_column_chunks_iter = prebuffered_column_chunks_.find(i); |
| 325 | if (prebuffered_column_chunks_iter != prebuffered_column_chunks_.end()) { |
| 326 | prebuffered_column_chunks_bitmap = prebuffered_column_chunks_iter->second; |
| 327 | } |
| 328 | |
| 329 | std::unique_ptr<SerializedRowGroup> contents = std::make_unique<SerializedRowGroup>( |
| 330 | source_, cached_source_, source_size_, file_metadata_.get(), i, properties_, |
| 331 | std::move(prebuffered_column_chunks_bitmap)); |
| 332 | return std::make_shared<RowGroupReader>(std::move(contents)); |
| 333 | } |
| 334 | |
| 335 | std::shared_ptr<FileMetaData> metadata() const override { return file_metadata_; } |
| 336 | |