Re-exports

pub use optimizer::OptimizerConfig;
pub use optimizer::OptimizerRule;

Modules

Eliminate common sub-expression.
Optimizer rule to replace where false on a plan with an empty relation. This saves time in planning and executing the query. Note that this rule should be applied after simplify expressions optimizer rule.
Optimizer rule to replace LIMIT 0 or LIMIT whose ancestor LIMIT's skip is greater than or equal to current's fetch on a plan with an empty relation. This rule also removes OFFSET 0 from the LogicalPlan This saves time in planning and executing the query.
Expression simplifier
The FilterNullJoinKeys rule will identify inner joins with equi-join conditions where the join key is nullable on one side and non-nullable on the other side and then insert an IsNotNull filter on the nullable side since null values can never match.
Filter Push Down optimizer rule ensures that filters are applied as early as possible in the plan
Optimizer rule to push down LIMIT in the query plan It will push down through projection, limits (taking the smaller limit)
Query optimizer traits
Projection Push Down optimizer rule ensures that only referenced columns are loaded into memory
Optimizer rule to reduce cross join to inner join if join predicates are available in filters.
Optimizer rule to reduce left/right/full join to inner join if possible.
Simplify expressions optimizer rule
single distinct to group by optimizer rule
Optimizer rule for rewriting subquery filters to joins
Optimizer rule for type validation and coercion
Unwrap-cast binary comparison rule can be used to the binary/inlist comparison expr now, and other type of expr can be added if needed. This rule can reduce adding the Expr::Cast the expr instead of adding the Expr::Cast to literal expr.
Collection of utility functions that are leveraged by the query optimizer rules

Macros

A macro to assert that one string is contained within another with a nice error message if they are not.