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