Struct datafusion::physical_plan::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 + 'static>>,
when_then_expr: Vec<(Arc<dyn PhysicalExpr + 'static>, Arc<dyn PhysicalExpr + 'static>), Global>,
else_expr: Option<Arc<dyn PhysicalExpr + 'static>>
) -> Result<CaseExpr, DataFusionError>
pub fn try_new(
expr: Option<Arc<dyn PhysicalExpr + 'static>>,
when_then_expr: Vec<(Arc<dyn PhysicalExpr + 'static>, Arc<dyn PhysicalExpr + 'static>), Global>,
else_expr: Option<Arc<dyn PhysicalExpr + 'static>>
) -> Result<CaseExpr, DataFusionError>
Create a new CASE WHEN expression
sourcepub fn expr(&self) -> &Option<Arc<dyn PhysicalExpr + 'static>>
pub fn expr(&self) -> &Option<Arc<dyn PhysicalExpr + 'static>>
Optional base expression that can be compared to literal values in the “when” expressions
sourcepub fn when_then_expr(
&self
) -> &[(Arc<dyn PhysicalExpr + 'static>, Arc<dyn PhysicalExpr + 'static>)]
pub fn when_then_expr(
&self
) -> &[(Arc<dyn PhysicalExpr + 'static>, Arc<dyn PhysicalExpr + 'static>)]
One or more when/then expressions
sourcepub fn else_expr(&self) -> Option<&Arc<dyn PhysicalExpr + 'static>>
pub fn else_expr(&self) -> Option<&Arc<dyn PhysicalExpr + 'static>>
Optional “else” expression
Trait Implementations
sourceimpl PhysicalExpr for CaseExpr
impl PhysicalExpr for CaseExpr
sourcefn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Return a reference to Any that can be used for down-casting
sourcefn data_type(&self, input_schema: &Schema) -> Result<DataType, DataFusionError>
fn data_type(&self, input_schema: &Schema) -> Result<DataType, DataFusionError>
Get the data type of this expression, given the schema of the input
sourcefn nullable(&self, input_schema: &Schema) -> Result<bool, DataFusionError>
fn nullable(&self, input_schema: &Schema) -> Result<bool, DataFusionError>
Determine whether this expression is nullable, given the schema of the input
sourcefn evaluate(&self, batch: &RecordBatch) -> Result<ColumnarValue, DataFusionError>
fn evaluate(&self, batch: &RecordBatch) -> Result<ColumnarValue, DataFusionError>
Evaluate an expression against a RecordBatch
sourcefn evaluate_selection(
&self,
batch: &RecordBatch,
selection: &BooleanArray
) -> Result<ColumnarValue, DataFusionError>
fn evaluate_selection(
&self,
batch: &RecordBatch,
selection: &BooleanArray
) -> Result<ColumnarValue, DataFusionError>
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