pub struct OrderedResult { /* private fields */ }Expand description
Ordered result that sorts rows by ORDER BY expressions
Implementations§
Source§impl OrderedResult
impl OrderedResult
Sourcepub fn new<F>(inner: Box<dyn QueryResult>, compare: F) -> Result<Self>
pub fn new<F>(inner: Box<dyn QueryResult>, compare: F) -> Result<Self>
Create a new ordered result by materializing and sorting the inner result
Sourcepub fn new_radix<F>(
inner: Box<dyn QueryResult>,
order_specs: &[RadixOrderSpec],
fallback_compare: F,
) -> Result<Self>
pub fn new_radix<F>( inner: Box<dyn QueryResult>, order_specs: &[RadixOrderSpec], fallback_compare: F, ) -> Result<Self>
Create an ordered result using radix sort for integer columns
This is O(n) instead of O(n log n) for comparison-based sort. For 10K rows, this can be 2-5x faster. For 1M rows, 5-20x faster.
§Arguments
inner- Source result to materialize and sortorder_specs- Column indices and sort directions (must be integer columns)fallback_compare- Fallback comparison function if radix sort fails
Trait Implementations§
Source§impl QueryResult for OrderedResult
impl QueryResult for OrderedResult
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 last_error(&mut self) -> Option<Error>
fn last_error(&mut self) -> Option<Error>
Returns a pending error from the last
next() call, if any. Read moreSource§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 !RefUnwindSafe for OrderedResult
impl !Sync for OrderedResult
impl !UnwindSafe for OrderedResult
impl Freeze for OrderedResult
impl Send for OrderedResult
impl Unpin for OrderedResult
impl UnsafeUnpin for OrderedResult
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