pub mod embedding;
pub mod error;
pub mod nl2sql;
pub mod rag;
pub mod safety;
pub mod sql_sanitizer;
pub mod vector;
pub use embedding::*;
pub use error::AiError;
pub use nl2sql::*;
pub use rag::*;
pub use safety::*;
pub use sql_sanitizer::SqlSanitizer;
pub use vector::*;
#[cfg(feature = "real")]
pub mod real_embedding;
#[cfg(feature = "real")]
pub use real_embedding::OpenAIEmbeddingClient;
#[cfg(feature = "llm-optimizer")]
pub mod explain_parser;
#[cfg(feature = "llm-optimizer")]
pub mod query_plan_optimizer;
#[cfg(feature = "llm-optimizer")]
pub use explain_parser::{
ExplainPlanParser, ExplainSignal, MssqlExplainParser, MySqlExplainParser, OracleExplainParser,
PgExplainParser, SqliteExplainParser,
};
#[cfg(feature = "llm-optimizer")]
pub use query_plan_optimizer::{
HintSource, OptimizerConfig, UnifiedOptimizationHint, UnifiedQueryAnalysis,
UnifiedQueryOptimizer,
};
#[cfg(any(
feature = "ai-nl2sql-enhanced",
feature = "ai-index-advisor",
feature = "ai-rewrite-advisor"
))]
pub mod advice_common;
#[cfg(any(
feature = "ai-nl2sql-enhanced",
feature = "ai-index-advisor",
feature = "ai-rewrite-advisor"
))]
pub use advice_common::{AdviceSource, AdviceType, AiAdviceAuditRecord, BenefitEstimate};
#[cfg(feature = "ai-nl2sql-enhanced")]
pub mod intent_analysis;
#[cfg(feature = "ai-nl2sql-enhanced")]
pub use intent_analysis::{
IntentAnalysisResult, IntentAnalyzer, IntentError, OrderDirection, OrderField, Pagination,
ParameterizedCondition, QueryIntent, RiskLevel,
};
#[cfg(feature = "ai-index-advisor")]
pub mod index_advisor;
#[cfg(feature = "ai-index-advisor")]
pub use index_advisor::{
IndexAdvisor, IndexError, IndexSuggestion, IndexType, QueryPattern, SlowQueryLog,
};
#[cfg(feature = "ai-rewrite-advisor")]
pub mod rewrite_advisor;
#[cfg(feature = "ai-rewrite-advisor")]
pub use rewrite_advisor::{
EquivalenceProof, RewriteAdvisor, RewriteError, RewriteSuggestion, TransformType,
};