pub struct ProjectedRow<'schema, 'row> { /* private fields */ }Expand description
Concrete borrowed row passed from a projected source into an aggregate executor.
Keeping this representation in the execution contract lets aggregate hot paths use positional values without a trait-object call for every group key and aggregate input. Extra values cover source metadata such as document identifiers and scores without materializing a named row.
Implementations§
Source§impl<'schema, 'row> ProjectedRow<'schema, 'row>
impl<'schema, 'row> ProjectedRow<'schema, 'row>
pub fn new( schema: &'schema RowSchema, slots: &'schema [ProjectedValueSlot], fields: &'row [&'row Value], extras: &'row [Option<Value>], ) -> Self
pub fn positional_column(&self, index: usize) -> Option<&Value>
Sourcepub fn into_values(self) -> Vec<Value>
pub fn into_values(self) -> Vec<Value>
Materialize only at an operator boundary that requires owned physical values.
Trait Implementations§
Source§impl RowLookup for ProjectedRow<'_, '_>
impl RowLookup for ProjectedRow<'_, '_>
fn column(&self, name: &str) -> Option<&Value>
Source§fn column_is_ambiguous(&self, name: &str) -> bool
fn column_is_ambiguous(&self, name: &str) -> bool
Whether an unqualified name identifies more than one visible input
column. Callers must report SQLSTATE 42702 instead of selecting an
arbitrary suffix match.
fn qualified_column(&self, qualifier: &str, column: &str) -> Option<&Value>
Source§fn qualified_column_is_ambiguous(&self, qualifier: &str, column: &str) -> bool
fn qualified_column_is_ambiguous(&self, qualifier: &str, column: &str) -> bool
Whether a qualified identity names more than one visible input column.
Source§fn positional_column(&self, index: usize) -> Option<&Value>
fn positional_column(&self, index: usize) -> Option<&Value>
Return a value by the physical schema position used to construct this
row view. Materialized named rows do not expose positional access;
projected execution sources override it so compiled hot paths can avoid
repeating string lookup for every expression and row.
Source§fn visit_columns(&self, visitor: &mut dyn FnMut(&str, &Value))
fn visit_columns(&self, visitor: &mut dyn FnMut(&str, &Value))
Visit every logical column in schema order. Named rows use their map
order; positional execution rows override this without materializing a
map. The default keeps narrow projected lookup implementations source
compatible when they deliberately do not expose whole-row semantics.
Auto Trait Implementations§
impl<'schema, 'row> Freeze for ProjectedRow<'schema, 'row>
impl<'schema, 'row> RefUnwindSafe for ProjectedRow<'schema, 'row>
impl<'schema, 'row> Send for ProjectedRow<'schema, 'row>
impl<'schema, 'row> Sync for ProjectedRow<'schema, 'row>
impl<'schema, 'row> Unpin for ProjectedRow<'schema, 'row>
impl<'schema, 'row> UnsafeUnpin for ProjectedRow<'schema, 'row>
impl<'schema, 'row> UnwindSafe for ProjectedRow<'schema, 'row>
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<T> ErasedDestructor for Twhere
T: 'static,
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