pub struct ColumnarResult { /* private fields */ }Expand description
Columnar result that stores data column-major and materializes rows lazily.
This is optimized for window functions and other operations that naturally
produce column-major output. Instead of allocating millions of Row objects
upfront, it stores data as Vec<Value> per column and materializes rows
on-demand during iteration.
Key benefits:
- Reduces allocations from O(num_rows) to O(num_columns)
- Reuses a single Row buffer during iteration (zero per-row allocation)
- Natural fit for window function results
The returned row from row() is valid only until the next next() call.
Implementations§
Source§impl ColumnarResult
impl ColumnarResult
Trait Implementations§
Source§impl QueryResult for ColumnarResult
impl QueryResult for ColumnarResult
Source§fn columns_arc(&self) -> Option<CompactArc<Vec<String>>>
fn columns_arc(&self) -> Option<CompactArc<Vec<String>>>
Returns column names as Arc for zero-copy sharing Read more
Source§fn scan(&self, dest: &mut [Value]) -> Result<()>
fn scan(&self, dest: &mut [Value]) -> Result<()>
Scans the current row into the provided values Read more
Source§fn rows_affected(&self) -> i64
fn rows_affected(&self) -> i64
Returns the number of rows affected by an INSERT, UPDATE, or DELETE
Source§fn last_insert_id(&self) -> i64
fn last_insert_id(&self) -> i64
Returns the last inserted ID for an INSERT operation
Source§fn estimated_count(&self) -> Option<usize>
fn estimated_count(&self) -> Option<usize>
Returns an estimate of the total number of rows in the result. Read more
Source§fn with_aliases(
self: Box<Self>,
aliases: FxHashMap<String, String>,
) -> Box<dyn QueryResult>
fn with_aliases( self: Box<Self>, aliases: FxHashMap<String, String>, ) -> Box<dyn QueryResult>
Sets column aliases for this result Read more
Source§fn try_into_arc_rows(&mut self) -> Option<CompactArc<Vec<Row>>>
fn try_into_arc_rows(&mut self) -> Option<CompactArc<Vec<Row>>>
Try to extract all rows as
CompactArc<Vec<Row>> for zero-copy joins Read moreSource§fn supports_typed_batches(&self) -> bool
fn supports_typed_batches(&self) -> bool
Whether the result can yield decoded typed column batches without
constructing a row/value object for every result record. Read more
Source§fn typed_batch_fallback_reason(&self) -> Option<TypedBatchFallbackReason>
fn typed_batch_fallback_reason(&self) -> Option<TypedBatchFallbackReason>
If
supports_typed_batches() is false, return the best semantic reason. Read moreSource§fn next_typed_batch(&mut self) -> Result<Option<TypedColumnBatch>, Error>
fn next_typed_batch(&mut self) -> Result<Option<TypedColumnBatch>, Error>
Advance to the next typed column batch. Read more
Auto Trait Implementations§
impl Freeze for ColumnarResult
impl RefUnwindSafe for ColumnarResult
impl Send for ColumnarResult
impl Sync for ColumnarResult
impl Unpin for ColumnarResult
impl UnsafeUnpin for ColumnarResult
impl UnwindSafe for ColumnarResult
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