Trait datafusion_optimizer::analyzer::AnalyzerRule

source ·
pub trait AnalyzerRule {
    // Required methods
    fn analyze(
        &self,
        plan: LogicalPlan,
        config: &ConfigOptions,
    ) -> Result<LogicalPlan>;
    fn name(&self) -> &str;
}
Expand description

AnalyzerRules transform LogicalPlans in some way to make the plan valid prior to the rest of the DataFusion optimization process.

This is different than an OptimizerRule which must preserve the semantics of the LogicalPlan, while computing results in a more optimal way.

For example, an AnalyzerRule may resolve Exprs into more specific forms such as a subquery reference, or do type coercion to ensure the types of operands are correct.

Use SessionState::add_analyzer_rule to register additional AnalyzerRules.

Required Methods§

source

fn analyze( &self, plan: LogicalPlan, config: &ConfigOptions, ) -> Result<LogicalPlan>

Rewrite plan

source

fn name(&self) -> &str

A human readable name for this analyzer rule

Implementors§