struct RowGroupFrontier {
parquet_metadata: Arc<ParquetMetaData>,
row_groups: VecDeque<usize>,
selection: Option<RowSelection>,
budget: RowBudget,
has_predicates: bool,
}Fields§
§parquet_metadata: Arc<ParquetMetaData>Metadata used to resolve row counts for queued row groups.
row_groups: VecDeque<usize>Row group indices not yet handed to the builder.
selection: Option<RowSelection>Cross-row-group cursor for the optional global row selection.
budget: RowBudgetOffset/limit budget before the next readable row group is planned.
has_predicates: boolIf predicates are present, row groups with selected rows must be read so the predicate can decide whether they are actually needed.
Implementations§
Source§impl RowGroupFrontier
impl RowGroupFrontier
fn new( parquet_metadata: Arc<ParquetMetaData>, row_groups: Vec<usize>, selection: Option<RowSelection>, budget: RowBudget, has_predicates: bool, ) -> Self
fn row_group_num_rows( &self, row_group_idx: usize, ) -> Result<usize, ParquetError>
fn update_budget_after_row_group(&mut self, budget: RowBudget)
Sourcefn peek_next_row_group(&self) -> Result<Option<usize>, ParquetError>
fn peek_next_row_group(&self) -> Result<Option<usize>, ParquetError>
Peek at the next row-group index Self::next_readable_row_group
would hand out, without mutating any state. Returns None if every
remaining row group would be skipped under the current
selection/budget, or if the queue is empty.
Runs the real Self::next_readable_row_group advance logic on a
throwaway clone of the frontier, so peek can never drift from the
read path. The clone copies the queued row-group indices and optional
row-selection (a Vec<RowSelector>); see
RemainingRowGroups::peek_next_row_group.
fn clear_remaining(&mut self)
Sourcefn plan_selected_row_group(
&self,
next_row_group: NextRowGroup,
selected_rows: usize,
) -> QueuedRowGroupDecision
fn plan_selected_row_group( &self, next_row_group: NextRowGroup, selected_rows: usize, ) -> QueuedRowGroupDecision
Plan whether a selected row group should be read or skipped.
Selection-only skips are handled before this method is called. This method applies the remaining offset/limit budget and predicate conservatism.
Sourcefn next_readable_row_group(
&mut self,
) -> Result<Option<NextRowGroup>, ParquetError>
fn next_readable_row_group( &mut self, ) -> Result<Option<NextRowGroup>, ParquetError>
Advance queued row groups until one should be handed to the builder.
Trait Implementations§
Source§impl Clone for RowGroupFrontier
impl Clone for RowGroupFrontier
Source§fn clone(&self) -> RowGroupFrontier
fn clone(&self) -> RowGroupFrontier
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more