#![allow(
clippy::enum_glob_use,
clippy::doc_markdown,
clippy::map_unwrap_or,
clippy::derivable_impls,
clippy::match_same_arms,
clippy::module_name_repetitions,
clippy::missing_panics_doc,
clippy::panic_in_result_fn,
clippy::needless_for_each,
clippy::manual_assert,
clippy::option_if_let_else,
clippy::similar_names,
clippy::needless_pass_by_value,
clippy::unnecessary_wraps,
dead_code,
unused_imports,
clippy::struct_excessive_bools,
clippy::only_used_in_recursion,
clippy::question_mark,
clippy::unused_self,
clippy::single_match_else
)]
pub mod cardinality;
pub mod cost_model;
pub mod join_enumerator;
pub mod join_graph;
pub mod join_order;
pub mod optimizer;
pub mod plan_cost;
pub mod query_optimizer;
pub mod statement_planning;
pub mod text_top_k;
pub mod unified_plan;
pub use cardinality::{
column_entropy, entropy_cardinality_lower_bound, mutual_information_estimate, AccessParadigm,
CardinalityEstimator, ColumnStats, EdgeSample, GraphStats, GraphStoreSampler,
LocalAccessEstimate, RelationStats, Selectivity, GRAPH_AVG_DEGREE_DEFAULT,
JACCARD_JOIN_SELECTIVITY,
};
pub use cost_model::{CostEstimator, OperatorCost, OperatorKind};
pub use join_enumerator::{enumerate_dpccp, enumerate_dpccp_with_cost_estimator, JoinPlan};
pub use join_graph::{JoinEdge, JoinGraph, JoinGraphError, JoinGraphResult};
pub use join_order::{
JoinAlgorithm, JoinCondition, JoinOrderOptimizer, JoinOrderResult, JoinOrderTree,
JoinPredicate, JoinRelation,
};
pub use optimizer::{
optimize, optimize_with_aggregates, optimize_with_aggregates_and_statistics,
optimize_with_statistics, ConstantEvaluator, OptimizerConfig, SourceStatistics,
};
pub use query_optimizer::{
IndexScanCandidate, OptimizerConfig as TreeOptimizerConfig, QueryOptimizer,
};
pub use text_top_k::{plan_text_top_k, TextTopKCapabilities};
pub use unified_plan::{
rewrite_scalar_expression, AccessPathPlan, AggregateClassifier, AssignmentPlan, CommandPlan,
ComputePlan, ConflictActionPlan, ConflictPlan, CteCyclePlan, CtePlan, CtePlanBody,
CteSearchPlan, DeletePlan, ExpressionPlan, InsertPlan, JoinExecutionStrategy, MergePlan,
MergeWhenPlan, OrderPlan, ProjectionPlan, QueryBlockPlan, QueryPlan, RelationalPlan,
SourcePlan, TableFunctionPlan, UnifiedPlan, UpdatePlan, ViewCheckPlan, ViewRuleInsertPlan,
ViewRuleReturningPlan, ViewRuleUpdatePlan,
};
pub use uqa_sql::{
ScalarExpr, ScalarFrameBound, ScalarOrder, ScalarWindowFrame, ScalarWindowSpec, SubqueryId,
};
pub mod source_filters;
pub mod filter_pushdown;
pub mod explain;
pub mod column_pruning;
pub mod mutation_outputs;
pub mod retrieval_planning;