enum EvalMethod {
NoExpression(ProjectedCaseBody),
WithExpression(ProjectedCaseBody),
InfallibleExprOrNull,
ScalarOrScalar,
ExpressionOrExpression(ProjectedCaseBody),
}Variants§
NoExpression(ProjectedCaseBody)
CASE WHEN condition THEN result [WHEN …] [ELSE result] END
WithExpression(ProjectedCaseBody)
CASE expression WHEN value THEN result [WHEN …] [ELSE result] END
InfallibleExprOrNull
This is a specialization for a specific use case where we can take a fast path for expressions that are infallible and can be cheaply computed for the entire record batch rather than just for the rows where the predicate is true.
CASE WHEN condition THEN column [ELSE NULL] END
ScalarOrScalar
This is a specialization for a specific use case where we can take a fast path
if there is just one when/then pair and both the then and else expressions
are literal values
CASE WHEN condition THEN literal ELSE literal END
ExpressionOrExpression(ProjectedCaseBody)
This is a specialization for a specific use case where we can take a fast path
if there is just one when/then pair and both the then and else are expressions
CASE WHEN condition THEN expression ELSE expression END
Trait Implementations§
Source§impl Debug for EvalMethod
impl Debug for EvalMethod
Source§impl Hash for EvalMethod
impl Hash for EvalMethod
Source§impl PartialEq for EvalMethod
impl PartialEq for EvalMethod
impl Eq for EvalMethod
impl StructuralPartialEq for EvalMethod
Auto Trait Implementations§
impl Freeze for EvalMethod
impl !RefUnwindSafe for EvalMethod
impl Send for EvalMethod
impl Sync for EvalMethod
impl Unpin for EvalMethod
impl !UnwindSafe for EvalMethod
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
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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