struct StageRanges {
columns: Vec<usize>,
selected: Option<Vec<Option<Vec<usize>>>>,
heap: BinaryHeap<Reverse<((u64, Reverse<u64>, u64), u32, u32)>>,
}Expand description
The merge state of one stage.
A cursor of a column chunk is one heap entry: the sort key of its next range, the column and the position of that range. The other parts of the range are computed again when the entry is popped. Thus a stage stores no per-column state other than its heap entry, unless the selection removes pages.
Fields§
§columns: Vec<usize>Leaf column indexes, in file order. A HeapEntry refers to a
column by its position in this list.
selected: Option<Vec<Option<Vec<usize>>>>For each column in columns, the indexes of the data pages that the
decoder reads, if the selection removes pages. None if no column of
the stage has such a list.
heap: BinaryHeap<Reverse<((u64, Reverse<u64>, u64), u32, u32)>>The next range of each cursor that has one, smallest first.
Implementations§
Source§impl StageRanges
impl StageRanges
Sourcefn pages(&self, slot: usize, locations: &[PageLocation]) -> PageSet<'_>
fn pages(&self, slot: usize, locations: &[PageLocation]) -> PageSet<'_>
The data pages that the decoder reads of the column at slot, whose
page locations are locations.
Trait Implementations§
Source§impl Clone for StageRanges
impl Clone for StageRanges
Auto Trait Implementations§
impl Freeze for StageRanges
impl RefUnwindSafe for StageRanges
impl Send for StageRanges
impl Sync for StageRanges
impl Unpin for StageRanges
impl UnsafeUnpin for StageRanges
impl UnwindSafe for StageRanges
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more