Trait datafusion::physical_plan::ExecutionPlan [−][src]
pub trait ExecutionPlan: Debug + Send + Sync { fn as_any(&self) -> &dyn Any; fn schema(&self) -> SchemaRef; fn output_partitioning(&self) -> Partitioning; fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>; fn with_new_children(
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>; #[must_use] fn execute<'life0, 'async_trait>(
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait; fn required_child_distribution(&self) -> Distribution { ... } fn metrics(&self) -> HashMap<String, SQLMetric> { ... } }
Partition-aware execution plan for a relation
Required methods
fn as_any(&self) -> &dyn Any
[src]
Returns the execution plan as Any
so that it can be
downcast to a specific implementation.
fn schema(&self) -> SchemaRef
[src]
Get the schema for this execution plan
fn output_partitioning(&self) -> Partitioning
[src]
Specifies the output partitioning scheme of this plan
fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>
[src]
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).
fn with_new_children(
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
[src]
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
Returns a new plan where all children were replaced by new plans.
The size of children
must be equal to the size of ExecutionPlan::children()
.
#[must_use]fn execute<'life0, 'async_trait>(
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
creates an iterator
Provided methods
fn required_child_distribution(&self) -> Distribution
[src]
Specifies the data distribution requirements of all the children for this operator
fn metrics(&self) -> HashMap<String, SQLMetric>
[src]
Return a snapshot of the metrics collected during execution
Implementors
impl ExecutionPlan for CoalesceBatchesExec
[src]
impl ExecutionPlan for CoalesceBatchesExec
[src]fn as_any(&self) -> &dyn Any
[src]
Return a reference to Any that can be used for downcasting
fn schema(&self) -> SchemaRef
[src]
Get the schema for this execution plan
fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>
[src]
fn output_partitioning(&self) -> Partitioning
[src]
Get the output partitioning of this plan
fn with_new_children(
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
[src]
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
fn execute<'life0, 'async_trait>(
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
impl ExecutionPlan for CsvExec
[src]
impl ExecutionPlan for CsvExec
[src]fn as_any(&self) -> &dyn Any
[src]
Return a reference to Any that can be used for downcasting
fn schema(&self) -> SchemaRef
[src]
Get the schema for this execution plan
fn output_partitioning(&self) -> Partitioning
[src]
Get the output partitioning of this plan
fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>
[src]
fn with_new_children(
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
[src]
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
fn execute<'life0, 'async_trait>(
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
impl ExecutionPlan for EmptyExec
[src]
impl ExecutionPlan for EmptyExec
[src]fn as_any(&self) -> &dyn Any
[src]
Return a reference to Any that can be used for downcasting
fn schema(&self) -> SchemaRef
[src]
fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>
[src]
fn required_child_distribution(&self) -> Distribution
[src]
fn output_partitioning(&self) -> Partitioning
[src]
Get the output partitioning of this plan
fn with_new_children(
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
[src]
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
fn execute<'life0, 'async_trait>(
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
impl ExecutionPlan for ExplainExec
[src]
impl ExecutionPlan for ExplainExec
[src]fn as_any(&self) -> &dyn Any
[src]
Return a reference to Any that can be used for downcasting
fn schema(&self) -> SchemaRef
[src]
fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>
[src]
fn output_partitioning(&self) -> Partitioning
[src]
Get the output partitioning of this plan
fn with_new_children(
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
[src]
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
fn execute<'life0, 'async_trait>(
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
impl ExecutionPlan for FilterExec
[src]
impl ExecutionPlan for FilterExec
[src]fn as_any(&self) -> &dyn Any
[src]
Return a reference to Any that can be used for downcasting
fn schema(&self) -> SchemaRef
[src]
Get the schema for this execution plan
fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>
[src]
fn output_partitioning(&self) -> Partitioning
[src]
Get the output partitioning of this plan
fn with_new_children(
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
[src]
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
fn execute<'life0, 'async_trait>(
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
impl ExecutionPlan for HashAggregateExec
[src]
impl ExecutionPlan for HashAggregateExec
[src]fn as_any(&self) -> &dyn Any
[src]
Return a reference to Any that can be used for downcasting
fn schema(&self) -> SchemaRef
[src]
fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>
[src]
fn required_child_distribution(&self) -> Distribution
[src]
fn output_partitioning(&self) -> Partitioning
[src]
Get the output partitioning of this plan
fn execute<'life0, 'async_trait>(
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
fn with_new_children(
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
[src]
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
fn metrics(&self) -> HashMap<String, SQLMetric>
[src]
impl ExecutionPlan for HashJoinExec
[src]
impl ExecutionPlan for HashJoinExec
[src]fn as_any(&self) -> &dyn Any
[src]
fn schema(&self) -> SchemaRef
[src]
fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>
[src]
fn with_new_children(
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
[src]
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
fn output_partitioning(&self) -> Partitioning
[src]
fn execute<'life0, 'async_trait>(
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
impl ExecutionPlan for GlobalLimitExec
[src]
impl ExecutionPlan for GlobalLimitExec
[src]fn as_any(&self) -> &dyn Any
[src]
Return a reference to Any that can be used for downcasting
fn schema(&self) -> SchemaRef
[src]
fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>
[src]
fn required_child_distribution(&self) -> Distribution
[src]
fn output_partitioning(&self) -> Partitioning
[src]
Get the output partitioning of this plan
fn with_new_children(
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
[src]
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
fn execute<'life0, 'async_trait>(
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
impl ExecutionPlan for LocalLimitExec
[src]
impl ExecutionPlan for LocalLimitExec
[src]fn as_any(&self) -> &dyn Any
[src]
Return a reference to Any that can be used for downcasting
fn schema(&self) -> SchemaRef
[src]
fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>
[src]
fn output_partitioning(&self) -> Partitioning
[src]
fn with_new_children(
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
[src]
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
fn execute<'life0, 'async_trait>(
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
impl ExecutionPlan for MemoryExec
[src]
impl ExecutionPlan for MemoryExec
[src]fn as_any(&self) -> &dyn Any
[src]
Return a reference to Any that can be used for downcasting
fn schema(&self) -> SchemaRef
[src]
Get the schema for this execution plan
fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>
[src]
fn output_partitioning(&self) -> Partitioning
[src]
Get the output partitioning of this plan
fn with_new_children(
&self,
_: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
[src]
&self,
_: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
fn execute<'life0, 'async_trait>(
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
impl ExecutionPlan for MergeExec
[src]
impl ExecutionPlan for MergeExec
[src]fn as_any(&self) -> &dyn Any
[src]
Return a reference to Any that can be used for downcasting
fn schema(&self) -> SchemaRef
[src]
fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>
[src]
fn output_partitioning(&self) -> Partitioning
[src]
Get the output partitioning of this plan
fn with_new_children(
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
[src]
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
fn execute<'life0, 'async_trait>(
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
impl ExecutionPlan for ParquetExec
[src]
impl ExecutionPlan for ParquetExec
[src]fn as_any(&self) -> &dyn Any
[src]
Return a reference to Any that can be used for downcasting
fn schema(&self) -> SchemaRef
[src]
fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>
[src]
fn output_partitioning(&self) -> Partitioning
[src]
Get the output partitioning of this plan
fn with_new_children(
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
[src]
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
fn execute<'life0, 'async_trait>(
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
impl ExecutionPlan for ProjectionExec
[src]
impl ExecutionPlan for ProjectionExec
[src]fn as_any(&self) -> &dyn Any
[src]
Return a reference to Any that can be used for downcasting
fn schema(&self) -> SchemaRef
[src]
Get the schema for this execution plan
fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>
[src]
fn output_partitioning(&self) -> Partitioning
[src]
Get the output partitioning of this plan
fn with_new_children(
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
[src]
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
fn execute<'life0, 'async_trait>(
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
impl ExecutionPlan for RepartitionExec
[src]
impl ExecutionPlan for RepartitionExec
[src]fn as_any(&self) -> &dyn Any
[src]
Return a reference to Any that can be used for downcasting
fn schema(&self) -> SchemaRef
[src]
Get the schema for this execution plan
fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>
[src]
fn with_new_children(
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
[src]
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
fn output_partitioning(&self) -> Partitioning
[src]
fn execute<'life0, 'async_trait>(
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
impl ExecutionPlan for SortExec
[src]
impl ExecutionPlan for SortExec
[src]fn as_any(&self) -> &dyn Any
[src]
Return a reference to Any that can be used for downcasting
fn schema(&self) -> SchemaRef
[src]
fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>
[src]
fn output_partitioning(&self) -> Partitioning
[src]
Get the output partitioning of this plan
fn required_child_distribution(&self) -> Distribution
[src]
fn with_new_children(
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
[src]
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
fn execute<'life0, 'async_trait>(
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
fn metrics(&self) -> HashMap<String, SQLMetric>
[src]
impl ExecutionPlan for UnionExec
[src]
impl ExecutionPlan for UnionExec
[src]fn as_any(&self) -> &dyn Any
[src]
Return a reference to Any that can be used for downcasting
fn schema(&self) -> SchemaRef
[src]
fn children(&self) -> Vec<Arc<dyn ExecutionPlan>>
[src]
fn output_partitioning(&self) -> Partitioning
[src]
Output of the union is the combination of all output partitions of the inputs
fn with_new_children(
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
[src]
&self,
children: Vec<Arc<dyn ExecutionPlan>>
) -> Result<Arc<dyn ExecutionPlan>>
fn execute<'life0, 'async_trait>(
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
[src]
&'life0 self,
partition: usize
) -> Pin<Box<dyn Future<Output = Result<SendableRecordBatchStream>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,