1#![allow(
29 clippy::enum_glob_use,
30 clippy::doc_markdown,
31 clippy::map_unwrap_or,
32 clippy::derivable_impls,
33 clippy::match_same_arms,
34 clippy::module_name_repetitions,
35 clippy::missing_panics_doc,
36 clippy::panic_in_result_fn,
37 clippy::needless_for_each,
38 clippy::manual_assert,
39 clippy::option_if_let_else,
40 clippy::similar_names,
41 clippy::needless_pass_by_value,
42 clippy::too_many_lines,
43 clippy::unnecessary_wraps,
44 dead_code,
45 unused_imports,
46 clippy::struct_excessive_bools,
47 clippy::only_used_in_recursion,
48 clippy::question_mark,
49 clippy::unused_self,
50 clippy::single_match_else
51)]
52
53pub mod cardinality;
54pub mod cost_model;
55pub mod executor;
56pub mod join_enumerator;
57pub mod join_graph;
58pub mod join_order;
59pub mod optimizer;
60pub mod parallel;
61pub mod query_optimizer;
62pub mod text_top_k;
63pub mod unified_plan;
64
65pub use cardinality::{
66 column_entropy, entropy_cardinality_lower_bound, mutual_information_estimate, AccessParadigm,
67 CardinalityEstimator, ColumnStats, EdgeSample, GraphStats, GraphStoreSampler,
68 LocalAccessEstimate, RelationStats, Selectivity, GRAPH_AVG_DEGREE_DEFAULT,
69 JACCARD_JOIN_SELECTIVITY,
70};
71pub use cost_model::{CostEstimator, OperatorCost, OperatorKind};
72pub use executor::{ExecutionStats, OperatorOutput, OperatorTreeDriver, PlanExecutor};
73pub use join_enumerator::{enumerate_dpccp, enumerate_dpccp_with_cost_estimator, JoinPlan};
74pub use join_graph::{JoinEdge, JoinGraph, JoinGraphError, JoinGraphResult};
75pub use join_order::{
76 JoinAlgorithm, JoinCondition, JoinOrderOptimizer, JoinOrderResult, JoinOrderTree,
77 JoinPredicate, JoinRelation,
78};
79pub use optimizer::{
80 optimize, optimize_with_aggregates, optimize_with_aggregates_and_statistics,
81 optimize_with_statistics, OptimizerConfig, SourceStatistics,
82};
83pub use parallel::{
84 run_parallel, ParallelExecutor, DEFAULT_PARALLEL_WORKERS, MIN_PARALLEL_BRANCHES,
85};
86pub use query_optimizer::{
87 IndexScanCandidate, OptimizerConfig as TreeOptimizerConfig, QueryOptimizer,
88};
89pub use text_top_k::{plan_text_top_k, TextTopKCapabilities};
90pub use unified_plan::{
91 rewrite_scalar_expression, AccessPathPlan, AggregateClassifier, AssignmentPlan, CommandPlan,
92 ComputePlan, ConflictActionPlan, ConflictPlan, CteCyclePlan, CtePlan, CteSearchPlan,
93 DeletePlan, ExpressionPlan, InsertPlan, JoinExecutionStrategy, MergePlan, MergeWhenPlan,
94 OrderPlan, ProjectionPlan, QueryBlockPlan, QueryPlan, RelationalPlan, SourcePlan,
95 TableFunctionPlan, UnifiedPlan, UpdatePlan,
96};
97pub use uqa_execution::{
98 ScalarExpr, ScalarFrameBound, ScalarOrder, ScalarWindowFrame, ScalarWindowSpec, SubqueryId,
99};