Expand description
§DataFusion Optimizer
Contains rules for rewriting LogicalPlans
-
AnalyzerappliesAnalyzerRules to transformLogicalPlans to make the plan valid prior to the rest of the DataFusion optimization process (for example,TypeCoercion). -
OptimizerappliesOptimizerRules to transformLogicalPlans into equivalent, but more efficient plans.
Re-exports§
pub use analyzer::Analyzer;pub use analyzer::AnalyzerRule;pub use optimizer::ApplyOrder;pub use optimizer::Optimizer;pub use optimizer::OptimizerConfig;pub use optimizer::OptimizerContext;pub use optimizer::OptimizerRule;
Modules§
- analyzer
AnalyzerandAnalyzerRule- common_
subexpr_ eliminate CommonSubexprEliminateto avoid redundant computation of common sub-expressions- decorrelate
PullUpCorrelatedExprconverts correlated subqueries toJoins- decorrelate_
lateral_ join DecorrelateLateralJoindecorrelates logical plans produced by lateral joins.- decorrelate_
predicate_ subquery DecorrelatePredicateSubqueryconvertsIN/EXISTSsubquery predicates toSEMI/ANTIjoins- eliminate_
cross_ join EliminateCrossJoinconvertsCROSS JOINtoINNER JOINif join predicates are available.- eliminate_
duplicated_ expr EliminateDuplicatedExprRemoves redundant expressions- eliminate_
filter EliminateFilterreplaceswhere falseorwhere nullwith an empty relation.- eliminate_
group_ by_ constant EliminateGroupByConstantremoves constant expressions fromGROUP BYclause- eliminate_
join EliminateJoinrewritesINNER JOINwithtrue/null- eliminate_
limit EliminateLimiteliminatesLIMITwhen possible- eliminate_
nested_ union EliminateNestedUnion: flattens nestedUnionto a singleUnion- eliminate_
one_ union EliminateOneUnioneliminates single elementUnion- eliminate_
outer_ join EliminateOuterJoinconvertsLEFT/RIGHT/FULLjoins toINNERjoins- extract_
equijoin_ predicate ExtractEquijoinPredicateidentifies equality join (equijoin) predicates- filter_
null_ join_ keys FilterNullJoinKeysadds filters to join inputs when input isn’t nullable- optimize_
projections OptimizeProjectionsidentifies and eliminates unused columns- optimizer
OptimizerandOptimizerRule- propagate_
empty_ relation PropagateEmptyRelationeliminates nodes fed byEmptyRelation- push_
down_ filter PushDownFilterapplies filters as early as possible- push_
down_ limit PushDownLimitpushesLIMITearlier in the query plan- replace_
distinct_ aggregate ReplaceDistinctWithAggregatereplacesDISTINCT ...withGROUP BY ...- scalar_
subquery_ to_ join ScalarSubqueryToJoinrewriting scalar subquery filters toJOINs- simplify_
expressions SimplifyExpressionssimplifies expressions in the logical plan,ExprSimplifiersimplifies individualExprs.- single_
distinct_ to_ groupby SingleDistinctToGroupByreplacesAGG(DISTINCT ..)withAGG(..) GROUP BY ..- utils
- Utility functions leveraged by the query optimizer rules