Trait datafusion::physical_plan::PhysicalExpr
source · pub trait PhysicalExpr: Send + Sync + Display + Debug + PartialEq<dyn Any + 'static> {
// Required methods
fn as_any(&self) -> &(dyn Any + 'static);
fn data_type(
&self,
input_schema: &Schema
) -> Result<DataType, DataFusionError>;
fn nullable(&self, input_schema: &Schema) -> Result<bool, DataFusionError>;
fn evaluate(
&self,
batch: &RecordBatch
) -> Result<ColumnarValue, DataFusionError>;
fn children(&self) -> Vec<Arc<dyn PhysicalExpr + 'static>, Global> ⓘ;
fn with_new_children(
self: Arc<Self>,
children: Vec<Arc<dyn PhysicalExpr + 'static>, Global>
) -> Result<Arc<dyn PhysicalExpr + 'static>, DataFusionError>;
// Provided methods
fn evaluate_selection(
&self,
batch: &RecordBatch,
selection: &BooleanArray
) -> Result<ColumnarValue, DataFusionError> { ... }
fn analyze(&self, context: AnalysisContext) -> AnalysisContext { ... }
}
Expand description
Expression that can be evaluated against a RecordBatch A Physical expression knows its type, nullability and how to evaluate itself.
Required Methods§
sourcefn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Returns the physical expression as Any
so that it can be
downcast to a specific implementation.
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 children(&self) -> Vec<Arc<dyn PhysicalExpr + 'static>, Global> ⓘ
fn children(&self) -> Vec<Arc<dyn PhysicalExpr + 'static>, Global> ⓘ
Get a list of child PhysicalExpr that provide the input for this expr.
sourcefn with_new_children(
self: Arc<Self>,
children: Vec<Arc<dyn PhysicalExpr + 'static>, Global>
) -> Result<Arc<dyn PhysicalExpr + 'static>, DataFusionError>
fn with_new_children( self: Arc<Self>, children: Vec<Arc<dyn PhysicalExpr + 'static>, Global> ) -> Result<Arc<dyn PhysicalExpr + 'static>, DataFusionError>
Returns a new PhysicalExpr where all children were replaced by new exprs.
Provided Methods§
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
sourcefn analyze(&self, context: AnalysisContext) -> AnalysisContext
fn analyze(&self, context: AnalysisContext) -> AnalysisContext
Return the boundaries of this expression. This method (and all the related APIs) are experimental and subject to change.