struct RowGroupContext {
row_group_idx: usize,
row_count: usize,
first_row: u64,
rows: SelectedRows,
selection: Option<RowSelection>,
expanded_selection: Option<RowSelection>,
stages: Arc<StageSchedule>,
metadata: Arc<ParquetMetaData>,
page_index: Option<Arc<dyn PageIndexProvider>>,
}Expand description
What the ranges of one row group are computed from.
Fields§
§row_group_idx: usize§row_count: usize§first_row: u64Planned rows before this row group.
rows: SelectedRows§selection: Option<RowSelection>The selection the decoder uses to choose pages.
expanded_selection: Option<RowSelection>The selection expanded to batch boundaries, for cached predicate columns.
stages: Arc<StageSchedule>What each decoding stage fetches.
metadata: Arc<ParquetMetaData>The file metadata, for the byte ranges of the column chunks.
page_index: Option<Arc<dyn PageIndexProvider>>The file’s page index, if it has offset indexes.
Implementations§
Source§impl RowGroupContext
impl RowGroupContext
fn locations(&self, column_idx: usize) -> Option<&[PageLocation]>
Sourcefn row_group_rows(&self) -> Range<u64> ⓘ
fn row_group_rows(&self) -> Range<u64> ⓘ
Planned rows of the whole row group.
Sourcefn page_rows(&self, locations: &[PageLocation], idx: usize) -> Range<u64> ⓘ
fn page_rows(&self, locations: &[PageLocation], idx: usize) -> Range<u64> ⓘ
Planned rows of the data page at idx in locations.
Sourcefn data_page(
&self,
locations: &[PageLocation],
pages: PageSet<'_>,
position: usize,
) -> Option<(u64, Reverse<u64>, u64)>
fn data_page( &self, locations: &[PageLocation], pages: PageSet<'_>, position: usize, ) -> Option<(u64, Reverse<u64>, u64)>
The sort key of the data page at position in pages, if any.
Sourcefn first_range(
&self,
column_idx: usize,
stage: ScanStage,
) -> (Option<((u64, Reverse<u64>, u64), u32)>, Option<Vec<usize>>)
fn first_range( &self, column_idx: usize, stage: ScanStage, ) -> (Option<((u64, Reverse<u64>, u64), u32)>, Option<Vec<usize>>)
The first range of one column chunk: its sort key and position, or
None if the column chunk has no range. Also returns the data pages
that the decoder reads, if the selection removes pages.
The ranges are the same bytes that InMemoryRowGroup::fetch_ranges
requests, split at page boundaries when page locations are known.