[][src]Trait datafusion::optimizer::optimizer::OptimizerRule

pub trait OptimizerRule {
    fn optimize(&mut self, plan: &LogicalPlan) -> Result<LogicalPlan>;
fn name(&self) -> &str; fn optimize_children(&mut self, plan: &LogicalPlan) -> Result<LogicalPlan> { ... } }

An optimizer rules performs a transformation on a logical plan to produce an optimized logical plan.

Required methods

fn optimize(&mut self, plan: &LogicalPlan) -> Result<LogicalPlan>[src]

Perform optimizations on the plan

fn name(&self) -> &str[src]

Produce a human readable name for this optimizer rule

Loading content...

Provided methods

fn optimize_children(&mut self, plan: &LogicalPlan) -> Result<LogicalPlan>[src]

Convenience rule for writing optimizers: recursively invoke optimize on plan's children and then return a node of the same type. Useful for optimizer rules which want to leave the type of plan unchanged but still apply to the children.

Loading content...

Implementors

impl OptimizerRule for FilterPushDown[src]

impl OptimizerRule for HashBuildProbeOrder[src]

impl OptimizerRule for ProjectionPushDown[src]

Loading content...