Struct datafusion::physical_plan::sorts::sort::SortExec
source · pub struct SortExec { /* private fields */ }
Expand description
External Sort execution plan
Implementations§
source§impl SortExec
impl SortExec
sourcepub fn try_new(
expr: Vec<PhysicalSortExpr>,
input: Arc<dyn ExecutionPlan>,
fetch: Option<usize>
) -> Result<Self>
pub fn try_new( expr: Vec<PhysicalSortExpr>, input: Arc<dyn ExecutionPlan>, fetch: Option<usize> ) -> Result<Self>
Create a new sort execution plan
sourcepub fn preserve_partitioning(&self) -> bool
pub fn preserve_partitioning(&self) -> bool
Whether this SortExec
preserves partitioning of the children
sourcepub fn new_with_partitioning(
expr: Vec<PhysicalSortExpr>,
input: Arc<dyn ExecutionPlan>,
preserve_partitioning: bool,
fetch: Option<usize>
) -> Self
pub fn new_with_partitioning( expr: Vec<PhysicalSortExpr>, input: Arc<dyn ExecutionPlan>, preserve_partitioning: bool, fetch: Option<usize> ) -> Self
Create a new sort execution plan with the option to preserve the partitioning of the input plan
sourcepub fn input(&self) -> &Arc<dyn ExecutionPlan>
pub fn input(&self) -> &Arc<dyn ExecutionPlan>
Input schema
sourcepub fn expr(&self) -> &[PhysicalSortExpr]
pub fn expr(&self) -> &[PhysicalSortExpr]
Sort expressions
Trait Implementations§
source§impl ExecutionPlan for SortExec
impl ExecutionPlan for SortExec
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>
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 it its input(s) are infinite, returns an error to indicate this.
source§fn as_any(&self) -> &dyn Any
fn as_any(&self) -> &dyn Any
Returns the execution plan as
Any
so that it can be
downcast to a specific implementation.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 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 benefits_from_input_partitioning(&self) -> bool
fn benefits_from_input_partitioning(&self) -> bool
Returns
true
if this operator would benefit from
partitioning its input (and thus from more parallelism). For
operators that do very little work the overhead of extra
parallelism may outweigh any benefits Read moresource§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 equivalence_properties(&self) -> EquivalenceProperties
fn equivalence_properties(&self) -> EquivalenceProperties
Get the EquivalenceProperties 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 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_ordering(&self) -> Vec<Option<&[PhysicalSortExpr]>> ⓘ
fn required_input_ordering(&self) -> Vec<Option<&[PhysicalSortExpr]>> ⓘ
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