Trait datafusion::physical_plan::planner::ExtensionPlanner
source · pub trait ExtensionPlanner {
// Required method
fn plan_extension<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'life6, 'async_trait>(
&'life0 self,
planner: &'life1 dyn PhysicalPlanner,
node: &'life2 dyn UserDefinedLogicalNode,
logical_inputs: &'life3 [&'life4 LogicalPlan],
physical_inputs: &'life5 [Arc<dyn ExecutionPlan>],
session_state: &'life6 SessionState
) -> Pin<Box<dyn Future<Output = Result<Option<Arc<dyn ExecutionPlan>>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
'life6: 'async_trait;
}
Expand description
This trait exposes the ability to plan an ExecutionPlan
out of a LogicalPlan
.
Required Methods§
sourcefn plan_extension<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'life6, 'async_trait>(
&'life0 self,
planner: &'life1 dyn PhysicalPlanner,
node: &'life2 dyn UserDefinedLogicalNode,
logical_inputs: &'life3 [&'life4 LogicalPlan],
physical_inputs: &'life5 [Arc<dyn ExecutionPlan>],
session_state: &'life6 SessionState
) -> Pin<Box<dyn Future<Output = Result<Option<Arc<dyn ExecutionPlan>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
'life5: 'async_trait,
'life6: 'async_trait,
fn plan_extension<'life0, 'life1, 'life2, 'life3, 'life4, 'life5, 'life6, 'async_trait>( &'life0 self, planner: &'life1 dyn PhysicalPlanner, node: &'life2 dyn UserDefinedLogicalNode, logical_inputs: &'life3 [&'life4 LogicalPlan], physical_inputs: &'life5 [Arc<dyn ExecutionPlan>], session_state: &'life6 SessionState ) -> Pin<Box<dyn Future<Output = Result<Option<Arc<dyn ExecutionPlan>>>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait, 'life4: 'async_trait, 'life5: 'async_trait, 'life6: 'async_trait,
Create a physical plan for a UserDefinedLogicalNode
.
input_dfschema
: the logical plan schema for the inputs to this node
Returns an error when the planner knows how to plan the concrete
implementation of node
but errors while doing so.
Returns None
when the planner does not know how to plan the
node
and wants to delegate the planning to another
ExtensionPlanner
.