pub mod cardinality;
pub mod collector;
pub mod decision;
pub mod factor;
pub mod fingerprint;
pub mod history;
pub mod query;
pub mod selectivity;
pub mod trigger;
pub use cardinality::CardinalityFeedbackManager;
pub use decision::{DecisionFeedbackStore, DecorrelationAdvice};
pub use factor::FeedbackDrivenFactor;
pub use fingerprint::{generate_query_fingerprint, normalize_query};
pub use history::QueryFeedbackHistory;
pub use query::{OperatorFeedback, QueryExecutionFeedback};
pub use selectivity::{FeedbackDrivenSelectivity, SelectivityFeedbackManager};
pub use trigger::{AutoFeedbackConfig, AutoFeedbackTrigger};
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_module_integration() {
let mut selectivity = FeedbackDrivenSelectivity::new(0.1);
selectivity.update_with_feedback(0.15);
let query_feedback = QueryExecutionFeedback::new("fp_123".to_string());
let history = QueryFeedbackHistory::new(10);
history.add_feedback(query_feedback.clone());
let config = AutoFeedbackConfig::new();
assert!(selectivity.corrected_selectivity() > 0.0);
assert_eq!(query_feedback.query_fingerprint, "fp_123");
assert_eq!(history.total_feedback_count(), 1);
assert!(config.enabled);
}
}