pub enum EvaluationType {
Lazy,
Eager,
}Expand description
Represents how an operator’s Stream implementation generates RecordBatches.
Most operators in DataFusion generate RecordBatches when asked to do so by a call to
Stream::poll_next. This is known as demand-driven or lazy evaluation.
Some operators like Repartition need to drive RecordBatch generation themselves though. This
is known as data-driven or eager evaluation.
Variants§
Lazy
The stream generated by execute only generates RecordBatch
instances when it is demanded by invoking Stream::poll_next.
Filter, projection, and join are examples of such lazy operators.
Lazy operators are also known as demand-driven operators.
Eager
The stream generated by execute eagerly generates RecordBatch
in one or more spawned Tokio tasks. Eager evaluation is only started the first time
Stream::poll_next is called.
Examples of eager operators are repartition, coalesce partitions, and sort preserving merge.
Eager operators are also known as a data-driven operators.
Trait Implementations§
Source§impl Clone for EvaluationType
impl Clone for EvaluationType
Source§fn clone(&self) -> EvaluationType
fn clone(&self) -> EvaluationType
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for EvaluationType
impl Debug for EvaluationType
Source§impl PartialEq for EvaluationType
impl PartialEq for EvaluationType
impl Copy for EvaluationType
impl Eq for EvaluationType
impl StructuralPartialEq for EvaluationType
Auto Trait Implementations§
impl Freeze for EvaluationType
impl RefUnwindSafe for EvaluationType
impl Send for EvaluationType
impl Sync for EvaluationType
impl Unpin for EvaluationType
impl UnwindSafe for EvaluationType
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§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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