pub struct VecSource { /* private fields */ }Expand description
In-memory source from a precomputed Vec<ResultRow>. Useful for
tests and for materialising CTE bodies.
Implementations§
Trait Implementations§
Source§impl RowSource for VecSource
impl RowSource for VecSource
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 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 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 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 VecSource
impl RefUnwindSafe for VecSource
impl Send for VecSource
impl Sync for VecSource
impl Unpin for VecSource
impl UnsafeUnpin for VecSource
impl UnwindSafe for VecSource
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