SortIterator

Struct SortIterator 

Source
pub struct SortIterator<I: RowIterator> { /* private fields */ }
Expand description

Iterator that sorts rows according to ORDER BY expressions.

Note: Sorting requires materializing all input rows into memory. This iterator collects all rows from its input, sorts them, and then yields them one at a time.

Implementations§

Source§

impl<I: RowIterator> SortIterator<I>

Source

pub fn new(input: I, order_by: &[SortExpr]) -> Result<Self>

Creates a new sort iterator.

This constructor immediately materializes all input rows and sorts them.

§Errors

Returns an error if reading from input fails or if sort key evaluation fails.

Trait Implementations§

Source§

impl<I: RowIterator> RowIterator for SortIterator<I>

Source§

fn next_row(&mut self) -> Option<Result<Row>>

Advances the iterator and returns the next row, or None if exhausted. Read more
Source§

fn schema(&self) -> &[ColumnMetadata]

Returns the schema of rows produced by this iterator.

Auto Trait Implementations§

§

impl<I> Freeze for SortIterator<I>

§

impl<I> RefUnwindSafe for SortIterator<I>
where I: RefUnwindSafe,

§

impl<I> Send for SortIterator<I>
where I: Send,

§

impl<I> Sync for SortIterator<I>
where I: Sync,

§

impl<I> Unpin for SortIterator<I>
where I: Unpin,

§

impl<I> UnwindSafe for SortIterator<I>
where I: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,