pub enum ExecutionMode {
Bounded,
Unbounded,
PipelineBreaking,
}
Expand description
Describes the execution mode of the result of calling
ExecutionPlan::execute
with respect to its size and behavior.
The mode of the execution plan is determined by the mode of its input
execution plans and the details of the operator itself. For example, a
FilterExec
operator will have the same execution mode as its input, but a
SortExec
operator may have a different execution mode than its input,
depending on how the input stream is sorted.
There are three possible execution modes: Bounded
, Unbounded
and
PipelineBreaking
.
Variants§
Bounded
The stream is bounded / finite.
In this case the stream will eventually return None
to indicate that
there are no more records to process.
Unbounded
The stream is unbounded / infinite.
In this case, the stream will never be done (never return None
),
except in case of error.
This mode is often used in “Steaming” use cases where data is incrementally processed as it arrives.
Note that even though the operator generates an unbounded stream of results, it can execute with bounded memory and incrementally produces output.
PipelineBreaking
Some of the operator’s input stream(s) are unbounded, but the operator cannot generate streaming results from these streaming inputs.
In this case, the execution mode will be pipeline breaking, e.g. the operator requires unbounded memory to generate results. This information is used by the planner when performing sanity checks on plans processings unbounded data sources.
Implementations§
Source§impl ExecutionMode
impl ExecutionMode
Sourcepub fn is_unbounded(&self) -> bool
pub fn is_unbounded(&self) -> bool
Check whether the execution mode is unbounded or not.
Sourcepub fn pipeline_friendly(&self) -> bool
pub fn pipeline_friendly(&self) -> bool
Check whether the execution is pipeline friendly. If so, operator can execute safely.
Trait Implementations§
Source§impl Clone for ExecutionMode
impl Clone for ExecutionMode
Source§fn clone(&self) -> ExecutionMode
fn clone(&self) -> ExecutionMode
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for ExecutionMode
impl Debug for ExecutionMode
Source§impl PartialEq for ExecutionMode
impl PartialEq for ExecutionMode
impl Copy for ExecutionMode
impl StructuralPartialEq for ExecutionMode
Auto Trait Implementations§
impl Freeze for ExecutionMode
impl RefUnwindSafe for ExecutionMode
impl Send for ExecutionMode
impl Sync for ExecutionMode
impl Unpin for ExecutionMode
impl UnwindSafe for ExecutionMode
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)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>
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>
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