pub fn build_streaming_pipeline<'a, 'txn: 'a, S: KVStore + 'txn, C: Catalog + ?Sized, T: SqlTxn<'txn, S>>(
txn: &'a mut T,
catalog: &C,
plan: LogicalPlan,
) -> Result<(Box<dyn RowIterator + 'a>, Projection, Vec<ColumnMetadata>)>Expand description
Build a streaming iterator pipeline from a logical plan (FR-7).
This version uses ScanIterator for row-based tables to enable true
streaming without materializing all rows upfront. The returned iterator
has lifetime 'a tied to the transaction borrow.
ยงLimitations
- Columnar storage still materializes rows (uses VecIterator)
- Sort operations materialize all input rows
- KNN queries are not supported (use
build_iterator_pipelineinstead)