pub mod adaptive;
pub mod aggregate_analysis;
pub mod column_pruning;
pub mod distinct_elimination;
mod expressions;
pub mod index_planner;
pub(crate) mod predicate_implication;
mod predicate_plan;
pub mod selectivity;
pub mod subquery_rewrite;
pub mod subquery_to_join;
pub mod table_elimination;
#[cfg(test)]
mod tests;
pub mod where_pushdown;
pub mod window_pushdown;
pub use column_pruning::{
collect_columns_from_expr, collect_required_columns, compute_projection_indices, project_rows,
remap_schema,
};
pub use distinct_elimination::can_eliminate_distinct;
pub use expressions::*;
pub use predicate_plan::PredicatePlan;
pub use subquery_rewrite::rewrite_subquery_optimizations;
pub use subquery_rewrite::scalar_decorrelation::apply_scalar_decorrelation;
pub use subquery_to_join::transform_subqueries_to_joins;
pub use table_elimination::eliminate_unused_tables;
pub use where_pushdown::combine_with_and;
pub use window_pushdown::push_where_into_window_subqueries;