pub struct PhysicalVecSource { /* private fields */ }Expand description
In-memory positional source that preserves a structured RowSchema and shared physical row fragments without round-tripping through named maps.
Implementations§
Source§impl PhysicalVecSource
impl PhysicalVecSource
pub fn new(schema: RowSchema, rows: Vec<PhysicalRow>) -> Self
Trait Implementations§
Source§impl RowSource for PhysicalVecSource
impl RowSource for PhysicalVecSource
Source§fn schema(&self) -> &[String]
fn schema(&self) -> &[String]
Stable column order for the rows produced by
Self::next_row.Source§fn physical_schema(&self) -> Option<&RowSchema>
fn physical_schema(&self) -> Option<&RowSchema>
Optional non-identity schema used by positional sources. This carries
hidden lookup aliases and slot remaps that cannot be represented by the
legacy column-name slice.
Source§fn estimated_cardinality(&self) -> Option<u64>
fn estimated_cardinality(&self) -> Option<u64>
Estimated total rows available from this source.
Source§fn next_row(&mut self) -> ExecResult<Option<ResultRow>>
fn next_row(&mut self) -> ExecResult<Option<ResultRow>>
Pull the next row. Returns
None when the source is exhausted.Source§fn next_physical_batch(
&mut self,
max_rows: usize,
) -> ExecResult<Vec<PhysicalRow>>
fn next_physical_batch( &mut self, max_rows: usize, ) -> ExecResult<Vec<PhysicalRow>>
Pull a positional batch directly. Backend-native sources override this
to avoid constructing named maps at the scan boundary; compatibility
sources are converted exactly once here.
Source§fn output_ordering(&self) -> &[PhysicalOrder]
fn output_ordering(&self) -> &[PhysicalOrder]
Leading row order guaranteed by the source.
Source§fn next_batch(&mut self, max_rows: usize) -> ExecResult<Vec<ResultRow>>
fn next_batch(&mut self, max_rows: usize) -> ExecResult<Vec<ResultRow>>
Pull up to
max_rows without forcing batch-capable sources through a
row-at-a-time lock or backend call. The default preserves compatibility
for iterator-like sources.Source§fn consume_into_aggregate(
&mut self,
_executor: &mut dyn AggregateExecutor,
) -> ExecResult<bool>
fn consume_into_aggregate( &mut self, _executor: &mut dyn AggregateExecutor, ) -> ExecResult<bool>
Feed backend-native projected rows directly to an aggregate. Sources
that cannot preserve their normal filter and virtual-column semantics
return
false without advancing their cursor.Auto Trait Implementations§
impl Freeze for PhysicalVecSource
impl RefUnwindSafe for PhysicalVecSource
impl Send for PhysicalVecSource
impl Sync for PhysicalVecSource
impl Unpin for PhysicalVecSource
impl UnsafeUnpin for PhysicalVecSource
impl UnwindSafe for PhysicalVecSource
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