Path: blob/main/crates/polars-parquet/src/parquet/read/mod.rs
6940 views
mod column;1mod compression;2pub mod levels;3mod metadata;4mod page;5#[cfg(feature = "async")]6mod stream;78use std::io::{Seek, SeekFrom};910pub use column::*;11pub use compression::{BasicDecompressor, decompress};12pub use metadata::{deserialize_metadata, read_metadata, read_metadata_with_size};13pub use page::{PageIterator, PageMetaData, PageReader};14#[cfg(feature = "async")]15pub use page::{get_page_stream, get_page_stream_from_column_start};16use polars_utils::mmap::MemReader;17#[cfg(feature = "async")]18pub use stream::read_metadata as read_metadata_async;1920use crate::parquet::error::ParquetResult;21use crate::parquet::metadata::ColumnChunkMetadata;2223/// Returns a new [`PageReader`] by seeking `reader` to the beginning of `column_chunk`.24pub fn get_page_iterator(25column_chunk: &ColumnChunkMetadata,26mut reader: MemReader,27scratch: Vec<u8>,28max_page_size: usize,29) -> ParquetResult<PageReader> {30let col_start = column_chunk.byte_range().start;31reader.seek(SeekFrom::Start(col_start))?;32Ok(PageReader::new(33reader,34column_chunk,35scratch,36max_page_size,37))38}394041