pub trait AnalyzerRule: Debug {
// Required methods
fn analyze(
&self,
plan: LogicalPlan,
config: &ConfigOptions,
) -> Result<LogicalPlan>;
fn name(&self) -> &str;
}
Expand description
AnalyzerRule
s transform LogicalPlan
s 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 Expr
s 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
AnalyzerRule
s.
Required Methods§
Sourcefn analyze(
&self,
plan: LogicalPlan,
config: &ConfigOptions,
) -> Result<LogicalPlan>
fn analyze( &self, plan: LogicalPlan, config: &ConfigOptions, ) -> Result<LogicalPlan>
Rewrite plan