pub struct ReadNodeProps<C: PipelineOperator> { /* private fields */ }Expand description
Appends property columns to a chunk for live (selection-vector-passing) rows only.
Reads one batch of node properties per next_chunk() call using
NodeStore::batch_read_node_props_nullable, building a NullBitmap from
the Option<u64> results and appending one ColumnVector per col_id to
the chunk.
Rows that are already dead (not in the selection vector) are never read — this enforces the late-materialization principle: no I/O for filtered rows.
Implementations§
Source§impl<C: PipelineOperator> ReadNodeProps<C>
impl<C: PipelineOperator> ReadNodeProps<C>
Sourcepub fn new(
child: C,
store: Arc<NodeStore>,
label_id: u32,
slot_col_id: u32,
col_ids: Vec<u32>,
) -> Self
pub fn new( child: C, store: Arc<NodeStore>, label_id: u32, slot_col_id: u32, col_ids: Vec<u32>, ) -> Self
Create a ReadNodeProps operator.
child— upstream operator yielding chunks that contain a slot column.store— shared reference to the node store.label_id— label whose column files to read.slot_col_id— column ID in the child chunk that holds slot numbers.col_ids— property column IDs to append to each output chunk.
Trait Implementations§
Source§impl<C: PipelineOperator> PipelineOperator for ReadNodeProps<C>
impl<C: PipelineOperator> PipelineOperator for ReadNodeProps<C>
Auto Trait Implementations§
impl<C> Freeze for ReadNodeProps<C>where
C: Freeze,
impl<C> RefUnwindSafe for ReadNodeProps<C>where
C: RefUnwindSafe,
impl<C> Send for ReadNodeProps<C>where
C: Send,
impl<C> Sync for ReadNodeProps<C>where
C: Sync,
impl<C> Unpin for ReadNodeProps<C>where
C: Unpin,
impl<C> UnsafeUnpin for ReadNodeProps<C>where
C: UnsafeUnpin,
impl<C> UnwindSafe for ReadNodeProps<C>where
C: UnwindSafe,
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