Skip to main content

Module selection

Module selection 

Source
Expand description

Logic for selecting which rows to read: RowSelection and RowSelector

This module holds RowSelection and its public API, which dispatches to one of the two backings depending on how the selection is stored:

  • selector: the run length backing, RowSelector and its primitives
  • boolean: the bitmap backing, MaskSelection and its primitives

The remaining modules hold the operations that are common to both:

  • algebra: and_then, intersection and union
  • ranges: mapping a RowSelection onto page and batch ranges
  • cursor: iterating a RowSelection while reading

Re-exportsยง

pub use boolean::MaskRunIter;
pub use cursor::RowSelectionCursor;
pub use cursor::RowSelectionPolicy;
pub use selector::RowSelector;

Modulesยง

algebra ๐Ÿ”’
Set algebra backing RowSelection::and_then, RowSelection::intersection and RowSelection::union
boolean ๐Ÿ”’
The bitmap backed representation of a RowSelection and the primitives operating on it: conversion to and from the run length (RowSelector) form, and the transforms backing split_off, trim, offset and limit.
cursor ๐Ÿ”’
Execution time iteration over a RowSelection.
ranges ๐Ÿ”’
Mapping the RowSelector runs of a selection onto ranges: the byte ranges of the data pages that must be fetched (RowSelection::scan_ranges) and the expansion of a selection to batch boundaries.
selector ๐Ÿ”’
The run length backed representation of a RowSelection: RowSelector and the primitives operating on a sequence of them.

Structsยง

RowSelection
RowSelection represents selecting a subset of rows when scanning a parquet file.

Enumsยง

RowSelectionInner ๐Ÿ”’
Internal storage for RowSelection.