pub struct MultiRunCursor { /* private fields */ }Expand description
A forward cursor over multiple sorted runs that yields the projected
columns of surviving rows via a k-way merge by RowId (Phase 16.1).
Cross-run MVCC resolution (newest visible version per RowId) and predicate
survivor resolution are settled at construction using only the cheap system
columns; next_batch then lazily decodes the projected data columns of just
the pages that own survivors, each page at most once. This generalizes the
single-run NativePageCursor to arbitrary run counts so multi-run tables
stream instead of fully materializing.
Trait Implementations§
Source§impl Cursor for MultiRunCursor
impl Cursor for MultiRunCursor
Source§fn projection_types(&self) -> Vec<TypeId>
fn projection_types(&self) -> Vec<TypeId>
The projected column types, in output order.
Source§fn remaining_rows(&self) -> usize
fn remaining_rows(&self) -> usize
Exact count of surviving rows still to be yielded (without decoding).
Source§fn next_batch(&mut self) -> Result<Option<Vec<NativeColumn>>>
fn next_batch(&mut self) -> Result<Option<Vec<NativeColumn>>>
Decode the next batch of survivor rows as projected native columns, in
ascending
RowId order. None when the stream is exhausted.Auto Trait Implementations§
impl !RefUnwindSafe for MultiRunCursor
impl !UnwindSafe for MultiRunCursor
impl Freeze for MultiRunCursor
impl Send for MultiRunCursor
impl Sync for MultiRunCursor
impl Unpin for MultiRunCursor
impl UnsafeUnpin for MultiRunCursor
Blanket Implementations§
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
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more