Struct datafusion::physical_plan::projection::ProjectionExec
source · pub struct ProjectionExec { /* private fields */ }
Expand description
Execution plan for a projection
Implementations§
source§impl ProjectionExec
impl ProjectionExec
sourcepub fn try_new(
expr: Vec<(Arc<dyn PhysicalExpr>, String)>,
input: Arc<dyn ExecutionPlan>
) -> Result<Self>
pub fn try_new( expr: Vec<(Arc<dyn PhysicalExpr>, String)>, input: Arc<dyn ExecutionPlan> ) -> Result<Self>
Create a projection on an input
sourcepub fn expr(&self) -> &[(Arc<dyn PhysicalExpr>, String)]
pub fn expr(&self) -> &[(Arc<dyn PhysicalExpr>, String)]
The projection expressions stored as tuples of (expression, output column name)
sourcepub fn input(&self) -> &Arc<dyn ExecutionPlan>
pub fn input(&self) -> &Arc<dyn ExecutionPlan>
The input plan
Trait Implementations§
source§impl Debug for ProjectionExec
impl Debug for ProjectionExec
source§impl DisplayAs for ProjectionExec
impl DisplayAs for ProjectionExec
source§impl ExecutionPlan for ProjectionExec
impl ExecutionPlan for ProjectionExec
source§fn unbounded_output(&self, children: &[bool]) -> Result<bool>
fn unbounded_output(&self, children: &[bool]) -> Result<bool>
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 output_partitioning(&self) -> Partitioning
fn output_partitioning(&self) -> Partitioning
Get the output partitioning of this plan
source§fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>
fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>
Get a list of child execution plans that provide the input for this plan. The returned list
will be empty for leaf nodes, 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 operator 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 operator’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
source§fn ordering_equivalence_properties(&self) -> OrderingEquivalenceProperties
fn ordering_equivalence_properties(&self) -> OrderingEquivalenceProperties
Get the OrderingEquivalenceProperties within the plan
source§fn with_new_children(
self: Arc<Self>,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
fn with_new_children( self: Arc<Self>, children: Vec<Arc<dyn ExecutionPlan>> ) -> Result<Arc<dyn ExecutionPlan>>
Returns a new plan where all children were replaced by new plans.
source§fn benefits_from_input_partitioning(&self) -> Vec<bool>
fn benefits_from_input_partitioning(&self) -> Vec<bool>
Specifies whether the operator benefits from increased parallelization
at its input for each child. If set to
true
, this indicates that the
operator would benefit from partitioning its corresponding child
(and thus from more parallelism). For operators that do very little work
the overhead of extra parallelism may outweigh any benefits Read moresource§fn execute(
&self,
partition: usize,
context: Arc<TaskContext>
) -> Result<SendableRecordBatchStream>
fn execute( &self, partition: usize, context: Arc<TaskContext> ) -> Result<SendableRecordBatchStream>
creates an iterator
source§fn metrics(&self) -> Option<MetricsSet>
fn metrics(&self) -> Option<MetricsSet>
source§fn statistics(&self) -> Statistics
fn statistics(&self) -> Statistics
Returns the global output statistics for this
ExecutionPlan
node.source§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 operator, 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 requirements for all of the children
For each child, it’s the local ordering requirement within
each partition rather than the global ordering Read more
source§fn file_scan_config(&self) -> Option<&FileScanConfig>
fn file_scan_config(&self) -> Option<&FileScanConfig>
Returns the
FileScanConfig
in case this is a data source scanning execution plan or None
otherwise.Auto Trait Implementations§
impl !RefUnwindSafe for ProjectionExec
impl Send for ProjectionExec
impl Sync for ProjectionExec
impl Unpin for ProjectionExec
impl !UnwindSafe for ProjectionExec
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