Skip to main content

LimitIterator

Struct LimitIterator 

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

Iterator that applies LIMIT and OFFSET constraints.

This iterator skips the first offset rows and yields at most limit rows. It provides early termination - once the limit is reached, no more rows are requested from the input.

With tie_keys (FETCH … WITH TIES, issue #152) the iterator keeps yielding rows past the limit while their ORDER BY sort key compares equal to the final counted row’s key. Rows discarded by OFFSET never revive, even when they are peers of the boundary row.

Implementations§

Source§

impl<I: RowIterator> LimitIterator<I>

Source

pub fn new(input: I, limit: Option<u64>, offset: Option<u64>) -> Self

Creates a new limit iterator with the given LIMIT and OFFSET.

Source

pub fn with_ties( input: I, limit: Option<u64>, offset: Option<u64>, tie_keys: Vec<SortExpr>, ) -> Self

Creates a limit iterator that keeps boundary peers (FETCH … WITH TIES).

tie_keys must be the sort expressions of the input ordering; an empty vector degrades to plain LIMIT/OFFSET semantics.

Trait Implementations§

Source§

impl<I: RowIterator> RowIterator for LimitIterator<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 LimitIterator<I>
where I: Freeze,

§

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

§

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

§

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

§

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

§

impl<I> UnsafeUnpin for LimitIterator<I>
where I: UnsafeUnpin,

§

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

Blanket Implementations§

Source§

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

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> MaybeSend for T
where T: Send,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Error = !

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