pub struct Limit<'a> { /* private fields */ }Implementations§
Source§impl<'a> Limit<'a>
impl<'a> Limit<'a>
pub fn new( child: Box<dyn PhysicalOperator + 'a>, offset: u64, limit: Option<u64>, ) -> Self
Sourcepub fn with_ties(
child: Box<dyn PhysicalOperator + 'a>,
offset: u64,
limit: u64,
keys: Vec<SortKey>,
evaluator: SharedExpressionEvaluator<'a>,
) -> Self
pub fn with_ties( child: Box<dyn PhysicalOperator + 'a>, offset: u64, limit: u64, keys: Vec<SortKey>, evaluator: SharedExpressionEvaluator<'a>, ) -> Self
Build an ordered FETCH ... WITH TIES boundary. The caller must pass the complete effective ORDER BY key list and a non-null row count.
Trait Implementations§
Source§impl PhysicalOperator for Limit<'_>
impl PhysicalOperator for Limit<'_>
Source§fn row_schema(&self) -> &RowSchema
fn row_schema(&self) -> &RowSchema
Complete logical-to-physical row layout emitted by this operator. Every
Batch returned by Self::next must carry this exact schema; operators must reject a child that violates that invariant.Source§fn output_ordering(&self) -> &[PhysicalOrder]
fn output_ordering(&self) -> &[PhysicalOrder]
Leading output ordering known to be preserved by this operator.
Source§fn backward_scan_support(&self) -> BackwardScanSupport
fn backward_scan_support(&self) -> BackwardScanSupport
Describe backwards-scan support without changing the operator tree. The default is deliberately conservative so a scrollable cursor freezes the complete output of unclassified plans.
fn open(&mut self) -> ExecResult<()>
fn next(&mut self) -> ExecResult<Option<Batch>>
Source§fn next_direction(
&mut self,
direction: PhysicalScanDirection,
) -> ExecResult<Option<Batch>>
fn next_direction( &mut self, direction: PhysicalScanDirection, ) -> ExecResult<Option<Batch>>
Pull one directional batch. Native backwards-capable pipelines keep batches to one row so a consumer can reverse direction between adjacent fetches.
Source§fn rewind(&mut self) -> ExecResult<()>
fn rewind(&mut self) -> ExecResult<()>
Rewind a native backwards-capable pipeline without recomputing rows held by semantic materialization boundaries.
fn close(&mut self) -> ExecResult<()>
Source§fn estimated_cardinality(&self) -> Option<u64>
fn estimated_cardinality(&self) -> Option<u64>
Planner/runtime cardinality estimate for choosing physical strategies.
None means the operator cannot provide a useful estimate. The value
is advisory rather than a correctness bound.Source§fn consume_into_aggregate(
&mut self,
_executor: &mut dyn AggregateExecutor,
) -> ExecResult<bool>
fn consume_into_aggregate( &mut self, _executor: &mut dyn AggregateExecutor, ) -> ExecResult<bool>
Let a leaf consume its native projected rows directly into an
aggregate executor. Returning
false promises that no input was
consumed, so the caller can fall back to ordinary Batch pulls.Auto Trait Implementations§
impl<'a> !RefUnwindSafe for Limit<'a>
impl<'a> !Sync for Limit<'a>
impl<'a> !UnwindSafe for Limit<'a>
impl<'a> Freeze for Limit<'a>
impl<'a> Send for Limit<'a>
impl<'a> Unpin for Limit<'a>
impl<'a> UnsafeUnpin for Limit<'a>
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
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more