1pub use hawdb_cascades::{context, cost, memo, properties, rule, stage};
18pub use hawdb_optimizer_graph::{graph, logical, operator, search, trace};
19pub use hawdb_optimizer_predicate::predicate;
20pub use hawdb_optimizer_relational::{
21 relational, relational_join, relational_join_hypergraph, relational_join_rewrite,
22 relational_planning, relational_profile, relational_sargability,
23};
24pub use hawdb_optimizer_vector::vector;
25
26pub use context::{
27 ExplainMode, OptimizerContext, QueryFamily, ResourceHints, StatementClass, TraceSink,
28};
29pub use cost::{PlanCost, PlanCostBreakdown};
30pub use graph::{
31 CascadesOptimizer, FastPathPhysicalPhase, FastPathPhysicalPlanRoot, LogicalPhase,
32 LogicalPlanRoot, LoweringReadyLogicalPlanRoot, LoweringReadyPhase, OptimizerCatalog,
33 OptimizerCatalogIndexes, OptimizerCatalogStatistics, OptimizerIndexStatistics, PhysicalPhase,
34 PhysicalPlanRoot, PlanPhase, PlanPhaseKind,
35};
36pub use hawdb_optimizer_graph::PhysicalPlanNode as PlanNode;
37pub use hawdb_optimizer_graph::{
38 plan_class_counts, plan_operator_counts, visit_plan, visit_plan_with_ids, PhysicalOperatorId,
39 PhysicalPlanClass, PhysicalPlanKind, PhysicalPlanNode, PlanChildren,
40};
41pub use hawdb_optimizer_relational::{
42 estimate_relational_access_cost, estimate_relational_access_path_cost,
43 estimate_relational_access_path_cost_with_context, estimate_relational_join_cost,
44 estimate_relational_join_cost_with_contexts, estimate_relational_probe_join_cost,
45 RelationalAccessCostContext, RelationalJoinCardinality, RelationalJoinCostContexts,
46 RelationalJoinRightInput, RelationalJoinSelectivity,
47};
48pub use logical::{LogicalPlanClass, LogicalPlanKind, LogicalPlanNode};
49pub use memo::{GroupId, Memo, MemoGroup};
50pub use predicate::{
51 normalize_search_enum_value, push_search_predicates, search_field_is_enum_like, SearchFieldRef,
52 SearchPredicate, SearchPredicateOp, SearchPredicateParseError, SearchPredicatePushdown,
53 SearchPredicateSet, SearchScalarValue, SearchScanPredicateSupport,
54};
55pub use properties::{
56 Distribution, MemoryBudgetClass, PhysicalProperties, RequiredProperties, ScanPruningSupport,
57 VectorPrecision,
58};
59pub use relational::{
60 estimate_relational_nested_loop_join_cost, select_relational_access_path,
61 select_relational_access_path_with_context, skyline_prune_relational_access_paths,
62 skyline_prune_relational_access_paths_with_context, RelationalAccessPathDescriptor,
63 RelationalAccessPathKind, RelationalNestedLoopJoinCost,
64};
65pub use relational_join::{
66 enumerate_relational_inner_joins, enumerate_relational_inner_joins_with_cost_contexts,
67 RelationalInnerJoinEnumeration, RelationalJoinAccessApplicability, RelationalJoinAccessPath,
68 RelationalJoinEnumerationConfig, RelationalJoinEnumerationError, RelationalJoinGraph,
69 RelationalJoinPlan, RelationalJoinPredicate, RelationalJoinPredicateId, RelationalJoinRelation,
70 RelationalJoinStep,
71};
72pub use relational_join_hypergraph::{
73 enumerate_relational_csg_cmp_joins, enumerate_relational_csg_cmp_joins_with_cost_contexts,
74 enumerate_relational_csg_cmp_joins_with_implementations,
75 enumerate_relational_csg_cmp_joins_with_right_input_policy, RelationalCsgCmpAlternative,
76 RelationalCsgCmpEnumeration, RelationalCsgCmpJoinImplementation, RelationalCsgCmpPlan,
77 RelationalCsgCmpPlanNode, RelationalCsgCmpRightInputPolicy, RelationalEquiJoinAlgorithm,
78};
79pub use relational_join_rewrite::{
80 analyze_relational_join_conflicts, enumerate_relational_join_rewrites,
81 enumerate_relational_join_rewrites_with_cost_contexts, RelationalJoinConflictAnalysis,
82 RelationalJoinConflictDescriptor, RelationalJoinConflictRule, RelationalJoinOperator,
83 RelationalJoinOperatorId, RelationalJoinOperatorKind, RelationalJoinRewriteEnumeration,
84 RelationalJoinRewriteError, RelationalJoinRewritePlan, RelationalJoinRewriteProblem,
85 RelationalJoinRewriteStep, RelationalJoinTree,
86};
87pub use relational_planning::{
88 RelationalJoinPlanningAttempt, RelationalJoinPlanningBudget, RelationalJoinPlanningCost,
89 RelationalJoinPlanningDirective, RelationalJoinPlanningFallbackClass,
90 RelationalJoinPlanningOutcome, RelationalJoinPlanningReason, RelationalJoinPlanningStatus,
91 RelationalJoinPlanningStrategy,
92};
93pub use relational_profile::{
94 RelationalOperatorCardinalityProfile, RelationalOperatorId, RelationalOperatorKind,
95};
96pub use rule::{
97 apply_rule_batch, AppliedRule, OptimizerRule, RuleApplication, RuleBatch, RuleId, RuleKind,
98 RulePromise,
99};
100pub use search::{
101 OptimizationSearchReport, OptimizerSearchDirective, OptimizerSearchDirectiveError, RuleEvent,
102 RuleOutcome, SearchMode, SelectedPlanTrace,
103};
104pub use stage::{
105 ApplyOrder, OptimizationPipeline, OptimizationStage, PipelineExecution, RuleStage,
106 StageRuleBatch, StageStats, StageTrace,
107};
108pub use trace::{OperatorCardinalityEstimate, OptimizerConfig, OptimizerTrace};
109pub use vector::{
110 plan_vector_search, select_adaptive_vector_backend, validate_vector_pipeline,
111 AdaptiveVectorBackend, AdaptiveVectorBackendDecision, AdaptiveVectorBackendInput,
112 AdaptiveVectorBackendPolicy, PlannedVectorSearch, VectorCompressionPreference, VectorPlanError,
113 VectorPlanProperties,
114};