pub mod analysis;
pub mod builder;
pub mod context;
pub mod cost;
pub mod decision;
pub mod engine;
pub mod error;
pub mod factorization;
pub mod partitioning;
pub mod stats;
pub mod cost_based; pub mod heuristic;
pub use builder::OptimizerEngineBuilder;
pub use engine::OptimizerEngine;
pub use error::{CostError, CostResult, OptimizeError, OptimizeResult};
pub use partitioning::{PartitioningConfig, PartitioningDecision, PartitioningPlanner};
pub use stats::{
CardinalityFeedbackManager, DecisionFeedbackStore, DecorrelationAdvice, EdgeTypeStatistics,
FeedbackDrivenSelectivity, OperatorFeedback, PropertyStatistics, QueryExecutionFeedback,
QueryFeedbackHistory, SelectivityFeedbackManager, StatisticsManager, TagStatistics,
};
pub use cost::{CostAssigner, CostCalculator, CostModelConfig, SelectivityEstimator};
pub use analysis::{
AggregatedExpressionAnalysis, AnalysisOptions, BatchPlanAnalysis, BatchPlanAnalyzer,
ExpressionAnalysis, ReferenceCountAnalysis,
};
pub use context::OptimizationContext;
pub use cost_based::{
AggregateContext, AggregateSelectionReason, AggregateStrategy, AggregateStrategyDecision,
AggregateStrategySelector, CandidateStart, DegreeInfo, DirectionContext,
DirectionSelectionReason, IndexSelection, IndexSelector, JoinCondition, JoinOrderOptimizer,
JoinOrderResult, KeepReason, OptimizationMethod, PredicateOperator, PropertyPredicate,
SortContext, SortEliminationDecision, SortEliminationOptimizer, SortKeepReason,
SubqueryUnnestingOptimizer, TableInfo, TopNConversionReason, TraversalDirection,
TraversalDirectionDecision, TraversalDirectionOptimizer, TraversalSelectionReason,
TraversalStartSelector, UnnestDecision, UnnestReason,
};
pub use crate::cache::{
CteCacheConfig, CteCacheDecision, CteCacheDecisionMaker, CteCacheEntry, CteCacheManager,
CteCacheStats,
};
pub use heuristic::{
BaseRewriteRule, EliminationRule, HeuristicRule, HeuristicRuleAdapter, IntoOptRule,
MatchedResult, MergeRule, NodeRewriter, PushDownRule, RewriteContext, RewriteError,
RewriteRule, RuleWrapper, TransformResult,
};
pub use decision::{
AccessPath, EntityIndexChoice, EntityType, IndexChoice, IndexSelectionDecision, JoinAlgorithm,
JoinOrderDecision, OptimizationDecision, RewriteRuleId, TraversalStartDecision,
};