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_join_cost, estimate_relational_probe_join_cost, RelationalJoinCardinality,
44 RelationalJoinRightInput, RelationalJoinSelectivity,
45};
46pub use logical::{LogicalPlanClass, LogicalPlanKind, LogicalPlanNode};
47pub use memo::{GroupId, Memo, MemoGroup};
48pub use predicate::{
49 normalize_search_enum_value, push_search_predicates, search_field_is_enum_like, SearchFieldRef,
50 SearchPredicate, SearchPredicateOp, SearchPredicateParseError, SearchPredicatePushdown,
51 SearchPredicateSet, SearchScalarValue, SearchScanPredicateSupport,
52};
53pub use properties::{
54 Distribution, MemoryBudgetClass, PhysicalProperties, RequiredProperties, ScanPruningSupport,
55 VectorPrecision,
56};
57pub use relational::{
58 estimate_relational_nested_loop_join_cost, select_relational_access_path,
59 skyline_prune_relational_access_paths, RelationalAccessPathDescriptor,
60 RelationalAccessPathKind, RelationalNestedLoopJoinCost,
61};
62pub use relational_join::{
63 enumerate_relational_inner_joins, RelationalInnerJoinEnumeration,
64 RelationalJoinAccessApplicability, RelationalJoinAccessPath, RelationalJoinEnumerationConfig,
65 RelationalJoinEnumerationError, RelationalJoinGraph, RelationalJoinPlan,
66 RelationalJoinPredicate, RelationalJoinPredicateId, RelationalJoinRelation, RelationalJoinStep,
67};
68pub use relational_join_hypergraph::{
69 enumerate_relational_csg_cmp_joins, enumerate_relational_csg_cmp_joins_with_implementations,
70 enumerate_relational_csg_cmp_joins_with_right_input_policy, RelationalCsgCmpAlternative,
71 RelationalCsgCmpEnumeration, RelationalCsgCmpJoinImplementation, RelationalCsgCmpPlan,
72 RelationalCsgCmpPlanNode, RelationalCsgCmpRightInputPolicy, RelationalEquiJoinAlgorithm,
73};
74pub use relational_join_rewrite::{
75 analyze_relational_join_conflicts, enumerate_relational_join_rewrites,
76 RelationalJoinConflictAnalysis, RelationalJoinConflictDescriptor, RelationalJoinConflictRule,
77 RelationalJoinOperator, RelationalJoinOperatorId, RelationalJoinOperatorKind,
78 RelationalJoinRewriteEnumeration, RelationalJoinRewriteError, RelationalJoinRewritePlan,
79 RelationalJoinRewriteProblem, RelationalJoinRewriteStep, RelationalJoinTree,
80};
81pub use relational_planning::{
82 RelationalJoinPlanningAttempt, RelationalJoinPlanningBudget, RelationalJoinPlanningCost,
83 RelationalJoinPlanningDirective, RelationalJoinPlanningFallbackClass,
84 RelationalJoinPlanningOutcome, RelationalJoinPlanningReason, RelationalJoinPlanningStatus,
85 RelationalJoinPlanningStrategy,
86};
87pub use relational_profile::{
88 RelationalOperatorCardinalityProfile, RelationalOperatorId, RelationalOperatorKind,
89};
90pub use rule::{
91 apply_rule_batch, AppliedRule, OptimizerRule, RuleApplication, RuleBatch, RuleId, RuleKind,
92 RulePromise,
93};
94pub use search::{
95 OptimizationSearchReport, OptimizerSearchDirective, OptimizerSearchDirectiveError, RuleEvent,
96 RuleOutcome, SearchMode, SelectedPlanTrace,
97};
98pub use stage::{
99 ApplyOrder, OptimizationPipeline, OptimizationStage, PipelineExecution, RuleStage,
100 StageRuleBatch, StageStats, StageTrace,
101};
102pub use trace::{OperatorCardinalityEstimate, OptimizerConfig, OptimizerTrace};
103pub use vector::{
104 plan_vector_search, select_adaptive_vector_backend, validate_vector_pipeline,
105 AdaptiveVectorBackend, AdaptiveVectorBackendDecision, AdaptiveVectorBackendInput,
106 AdaptiveVectorBackendPolicy, PlannedVectorSearch, VectorCompressionPreference, VectorPlanError,
107 VectorPlanProperties,
108};