pub trait PhysicalExpr: Send + Sync + Display + Debug + PartialEq<dyn Any> {
fn as_any(&self) -> &dyn Any;
fn data_type(&self, input_schema: &Schema) -> Result<DataType>;
fn nullable(&self, input_schema: &Schema) -> Result<bool>;
fn evaluate(&self, batch: &RecordBatch) -> Result<ColumnarValue>;
fn children(&self) -> Vec<Arc<dyn PhysicalExpr>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
;
fn with_new_children(
self: Arc<Self>,
children: Vec<Arc<dyn PhysicalExpr>>
) -> Result<Arc<dyn PhysicalExpr>>;
fn evaluate_selection(
&self,
batch: &RecordBatch,
selection: &BooleanArray
) -> Result<ColumnarValue> { ... }
fn expr_stats(&self) -> Arc<dyn PhysicalExprStats> { ... }
}
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
fn as_any(&self) -> &dyn Any
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>
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 children(&self) -> Vec<Arc<dyn PhysicalExpr>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
fn children(&self) -> Vec<Arc<dyn PhysicalExpr>>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
A: Allocator,
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>>
) -> Result<Arc<dyn PhysicalExpr>>
fn with_new_children(
self: Arc<Self>,
children: Vec<Arc<dyn PhysicalExpr>>
) -> Result<Arc<dyn PhysicalExpr>>
Returns a new PhysicalExpr where all children were replaced by new exprs.
Provided Methods
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
sourcefn expr_stats(&self) -> Arc<dyn PhysicalExprStats>
fn expr_stats(&self) -> Arc<dyn PhysicalExprStats>
Return the expression statistics for this expression. This API is currently experimental.