Struct datafusion_physical_expr::expressions::CaseExpr
source · [−]pub struct CaseExpr { /* private fields */ }
Expand description
The CASE expression is similar to a series of nested if/else and there are two forms that can be used. The first form consists of a series of boolean “when” expressions with corresponding “then” expressions, and an optional “else” expression.
CASE WHEN condition THEN result [WHEN …] [ELSE result] END
The second form uses a base expression and then a series of “when” clauses that match on a literal value.
CASE expression WHEN value THEN result [WHEN …] [ELSE result] END
Implementations
sourceimpl CaseExpr
impl CaseExpr
sourcepub fn try_new(
expr: Option<Arc<dyn PhysicalExpr>>,
when_then_expr: Vec<(Arc<dyn PhysicalExpr>, Arc<dyn PhysicalExpr>)>,
else_expr: Option<Arc<dyn PhysicalExpr>>
) -> Result<Self>
pub fn try_new(
expr: Option<Arc<dyn PhysicalExpr>>,
when_then_expr: Vec<(Arc<dyn PhysicalExpr>, Arc<dyn PhysicalExpr>)>,
else_expr: Option<Arc<dyn PhysicalExpr>>
) -> Result<Self>
Create a new CASE WHEN expression
sourcepub fn expr(&self) -> &Option<Arc<dyn PhysicalExpr>>
pub fn expr(&self) -> &Option<Arc<dyn PhysicalExpr>>
Optional base expression that can be compared to literal values in the “when” expressions
sourcepub fn when_then_expr(
&self
) -> &[(Arc<dyn PhysicalExpr>, Arc<dyn PhysicalExpr>)]
pub fn when_then_expr(
&self
) -> &[(Arc<dyn PhysicalExpr>, Arc<dyn PhysicalExpr>)]
One or more when/then expressions
sourcepub fn else_expr(&self) -> Option<&Arc<dyn PhysicalExpr>>
pub fn else_expr(&self) -> Option<&Arc<dyn PhysicalExpr>>
Optional “else” expression
Trait Implementations
sourceimpl PhysicalExpr for CaseExpr
impl PhysicalExpr for CaseExpr
sourcefn data_type(&self, input_schema: &Schema) -> Result<DataType>
fn data_type(&self, input_schema: &Schema) -> Result<DataType>
Get the data type of this expression, given the schema of the input
sourcefn nullable(&self, input_schema: &Schema) -> Result<bool>
fn nullable(&self, input_schema: &Schema) -> Result<bool>
Determine whether this expression is nullable, given the schema of the input
sourcefn evaluate(&self, batch: &RecordBatch) -> Result<ColumnarValue>
fn evaluate(&self, batch: &RecordBatch) -> Result<ColumnarValue>
Evaluate an expression against a RecordBatch
sourcefn evaluate_selection(
&self,
batch: &RecordBatch,
selection: &BooleanArray
) -> Result<ColumnarValue>
fn evaluate_selection(
&self,
batch: &RecordBatch,
selection: &BooleanArray
) -> Result<ColumnarValue>
Evaluate an expression against a RecordBatch after first applying a validity array Read more
Auto Trait Implementations
impl !RefUnwindSafe for CaseExpr
impl Send for CaseExpr
impl Sync for CaseExpr
impl Unpin for CaseExpr
impl !UnwindSafe for CaseExpr
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more