Struct datafusion::physical_plan::filter::FilterExec
source · pub struct FilterExec { /* private fields */ }
Expand description
FilterExec evaluates a boolean predicate against all input batches to determine which rows to include in its output batches.
Implementations§
source§impl FilterExec
impl FilterExec
sourcepub fn try_new(
predicate: Arc<dyn PhysicalExpr>,
input: Arc<dyn ExecutionPlan>
) -> Result<FilterExec, DataFusionError>
pub fn try_new( predicate: Arc<dyn PhysicalExpr>, input: Arc<dyn ExecutionPlan> ) -> Result<FilterExec, DataFusionError>
Create a FilterExec on an input
pub fn with_default_selectivity( self, default_selectivity: u8 ) -> Result<FilterExec, DataFusionError>
sourcepub fn predicate(&self) -> &Arc<dyn PhysicalExpr>
pub fn predicate(&self) -> &Arc<dyn PhysicalExpr>
The expression to filter on. This expression must evaluate to a boolean value.
sourcepub fn input(&self) -> &Arc<dyn ExecutionPlan>
pub fn input(&self) -> &Arc<dyn ExecutionPlan>
The input plan
sourcepub fn default_selectivity(&self) -> u8
pub fn default_selectivity(&self) -> u8
The default selectivity
Trait Implementations§
source§impl Debug for FilterExec
impl Debug for FilterExec
source§impl DisplayAs for FilterExec
impl DisplayAs for FilterExec
source§impl ExecutionPlan for FilterExec
impl ExecutionPlan for FilterExec
source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Return a reference to Any that can be used for downcasting
source§fn output_partitioning(&self) -> Partitioning
fn output_partitioning(&self) -> Partitioning
Get the output partitioning of this plan
source§fn unbounded_output(&self, children: &[bool]) -> Result<bool, DataFusionError>
fn unbounded_output(&self, children: &[bool]) -> Result<bool, DataFusionError>
Specifies whether this plan generates an infinite stream of records. If the plan does not support pipelining, but its input(s) are infinite, returns an error to indicate this.
source§fn statistics(&self) -> Result<Statistics, DataFusionError>
fn statistics(&self) -> Result<Statistics, DataFusionError>
The output statistics of a filtering operation can be estimated if the predicate’s selectivity value can be determined for the incoming data.
source§fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>
fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>
Get a list of children
ExecutionPlan
s that act as inputs to this plan.
The returned list will be empty for leaf nodes such as scans, will contain
a single value for unary nodes, or two values for binary nodes (such as
joins).source§fn output_ordering(&self) -> Option<&[PhysicalSortExpr]>
fn output_ordering(&self) -> Option<&[PhysicalSortExpr]>
If the output of this
ExecutionPlan
within each partition is sorted,
returns Some(keys)
with the description of how it was sorted. Read moresource§fn maintains_input_order(&self) -> Vec<bool>
fn maintains_input_order(&self) -> Vec<bool>
Returns
false
if this ExecutionPlan
’s implementation may reorder
rows within or between partitions. Read moresource§fn equivalence_properties(&self) -> EquivalenceProperties
fn equivalence_properties(&self) -> EquivalenceProperties
Get the
EquivalenceProperties
within the plan. Read moresource§fn with_new_children(
self: Arc<FilterExec>,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>, DataFusionError>
fn with_new_children( self: Arc<FilterExec>, children: Vec<Arc<dyn ExecutionPlan>> ) -> Result<Arc<dyn ExecutionPlan>, DataFusionError>
Returns a new
ExecutionPlan
where all existing children were replaced
by the children
, in ordersource§fn execute(
&self,
partition: usize,
context: Arc<TaskContext>
) -> Result<Pin<Box<dyn RecordBatchStream<Item = Result<RecordBatch, DataFusionError>> + Send>>, DataFusionError>
fn execute( &self, partition: usize, context: Arc<TaskContext> ) -> Result<Pin<Box<dyn RecordBatchStream<Item = Result<RecordBatch, DataFusionError>> + Send>>, DataFusionError>
source§fn metrics(&self) -> Option<MetricsSet>
fn metrics(&self) -> Option<MetricsSet>
Return a snapshot of the set of
Metric
s for this
ExecutionPlan
. If no Metric
s are available, return None. Read moresource§fn required_input_distribution(&self) -> Vec<Distribution>
fn required_input_distribution(&self) -> Vec<Distribution>
Specifies the data distribution requirements for all the
children for this
ExecutionPlan
, By default it’s [Distribution::UnspecifiedDistribution] for each child,source§fn required_input_ordering(&self) -> Vec<Option<Vec<PhysicalSortRequirement>>>
fn required_input_ordering(&self) -> Vec<Option<Vec<PhysicalSortRequirement>>>
Specifies the ordering required for all of the children of this
ExecutionPlan
. Read moresource§fn benefits_from_input_partitioning(&self) -> Vec<bool>
fn benefits_from_input_partitioning(&self) -> Vec<bool>
Specifies whether the
ExecutionPlan
benefits from increased
parallelization at its input for each child. Read moresource§fn repartitioned(
&self,
_target_partitions: usize,
_config: &ConfigOptions
) -> Result<Option<Arc<dyn ExecutionPlan>>, DataFusionError>
fn repartitioned( &self, _target_partitions: usize, _config: &ConfigOptions ) -> Result<Option<Arc<dyn ExecutionPlan>>, DataFusionError>
If supported, attempt to increase the partitioning of this
ExecutionPlan
to
produce target_partitions
partitions. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for FilterExec
impl Send for FilterExec
impl Sync for FilterExec
impl Unpin for FilterExec
impl !UnwindSafe for FilterExec
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
Mutably borrows from an owned value. Read more