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