pub struct StructuralPrimitiveFieldScheduler { /* private fields */ }Expand description
A scheduler for a leaf node
Here we look at the layout of the various pages and delegate scheduling to a scheduler appropriate for the layout of the page.
Implementations§
Source§impl StructuralPrimitiveFieldScheduler
impl StructuralPrimitiveFieldScheduler
Sourcepub fn try_new(
column_info: &ColumnInfo,
decompressors: &dyn DecompressionStrategy,
cache_repetition_index: bool,
target_field: &Field,
) -> Result<Self>
👎Deprecated since 13.0.0: builds every page scheduler eagerly; use try_new_lazy
pub fn try_new( column_info: &ColumnInfo, decompressors: &dyn DecompressionStrategy, cache_repetition_index: bool, target_field: &Field, ) -> Result<Self>
builds every page scheduler eagerly; use try_new_lazy
Creates the scheduler and builds every page scheduler up front.
This pays for all pages of the column on every read. Prefer
Self::try_new_lazy, which builds only the pages a read touches.
Sourcepub fn try_new_lazy(
column_info: Arc<ColumnInfo>,
decompressors: Arc<dyn DecompressionStrategy>,
cache_repetition_index: bool,
target_field: &Field,
) -> Result<Self>
pub fn try_new_lazy( column_info: Arc<ColumnInfo>, decompressors: Arc<dyn DecompressionStrategy>, cache_repetition_index: bool, target_field: &Field, ) -> Result<Self>
Creates the scheduler without building any page schedulers.
Only the per-page row boundaries are computed here. Page schedulers
are built in StructuralFieldScheduler::initialize for the pages the
requested ranges touch (or for every page when no ranges are given), so
a small read from a column with many pages stays cheap.
Trait Implementations§
Source§impl StructuralFieldScheduler for StructuralPrimitiveFieldScheduler
impl StructuralFieldScheduler for StructuralPrimitiveFieldScheduler
Source§fn initialize<'a>(
&'a mut self,
requested_ranges: Option<&'a [Range<u64>]>,
_filter: &'a FilterExpression,
context: &'a SchedulerContext,
) -> BoxFuture<'a, Result<()>>
fn initialize<'a>( &'a mut self, requested_ranges: Option<&'a [Range<u64>]>, _filter: &'a FilterExpression, context: &'a SchedulerContext, ) -> BoxFuture<'a, Result<()>>
Loads the per-page metadata this column needs before scheduling. Read more
fn schedule_ranges<'a>( &'a self, ranges: &[Range<u64>], _filter: &FilterExpression, ) -> Result<Box<dyn StructuralSchedulingJob + 'a>>
Auto Trait Implementations§
impl !RefUnwindSafe for StructuralPrimitiveFieldScheduler
impl !Sync for StructuralPrimitiveFieldScheduler
impl !UnwindSafe for StructuralPrimitiveFieldScheduler
impl Freeze for StructuralPrimitiveFieldScheduler
impl Send for StructuralPrimitiveFieldScheduler
impl Unpin for StructuralPrimitiveFieldScheduler
impl UnsafeUnpin for StructuralPrimitiveFieldScheduler
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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