pub struct BasicPageScheduler { /* private fields */ }
Expand description
A physical scheduler for “basic” fields. These are fields that have an optional validity bitmap and some kind of values buffer.
No actual decoding happens here, we are simply aggregating the two buffers.
If everything is null then there are no data buffers at all.
Implementations§
Source§impl BasicPageScheduler
impl BasicPageScheduler
Sourcepub fn new_nullable(
validity_decoder: Box<dyn PageScheduler>,
values_decoder: Box<dyn PageScheduler>,
) -> Self
pub fn new_nullable( validity_decoder: Box<dyn PageScheduler>, values_decoder: Box<dyn PageScheduler>, ) -> Self
Creates a new instance that expects a validity bitmap
Sourcepub fn new_non_nullable(values_decoder: Box<dyn PageScheduler>) -> Self
pub fn new_non_nullable(values_decoder: Box<dyn PageScheduler>) -> Self
Create a new instance that does not need a validity bitmap because no item is null
Sourcepub fn new_all_null() -> Self
pub fn new_all_null() -> Self
Create a new instance where all values are null
It may seem strange we need values_decoder
here but Arrow requires that value
buffers still be allocated / sized even if everything is null. So we need the value
decoder to calculate the capacity of the garbage buffer.
Trait Implementations§
Source§impl Debug for BasicPageScheduler
impl Debug for BasicPageScheduler
Source§impl PageScheduler for BasicPageScheduler
impl PageScheduler for BasicPageScheduler
Source§fn schedule_ranges(
&self,
ranges: &[Range<u64>],
scheduler: &Arc<dyn EncodingsIo>,
top_level_row: u64,
) -> BoxFuture<'static, Result<Box<dyn PrimitivePageDecoder>>>
fn schedule_ranges( &self, ranges: &[Range<u64>], scheduler: &Arc<dyn EncodingsIo>, top_level_row: u64, ) -> BoxFuture<'static, Result<Box<dyn PrimitivePageDecoder>>>
Schedules a batch of I/O to load the data needed for the requested ranges Read more
Auto Trait Implementations§
impl Freeze for BasicPageScheduler
impl !RefUnwindSafe for BasicPageScheduler
impl Send for BasicPageScheduler
impl Sync for BasicPageScheduler
impl Unpin for BasicPageScheduler
impl !UnwindSafe for BasicPageScheduler
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> 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