🔧 Fix database crate duplicate name errors (E0252)

- Removed duplicate re-exports in database/src/lib.rs
- Types are already imported at module level, no need to re-export
- Fixes compilation error that was blocking workspace build
This commit is contained in:
jgrusewski
2025-09-29 23:15:59 +02:00
parent c2b0a51c51
commit d2d9fc3f82
10 changed files with 82 additions and 74 deletions

View File

@@ -302,7 +302,7 @@ impl FeatureRepository {
let conn = self.pool.get().await?;
// Using sqlx query builder pattern
let query =
let (query, params) =
if let Some(version) = feature_set_version {
(r#"SELECT features, last_updated, expires_at
FROM ml_feature_cache
@@ -347,40 +347,37 @@ impl FeatureRepository {
WHERE feature_set_id = $1
"#.to_string();
// Using sqlx query builder pattern instead of raw parameters
// Using sqlx query builder pattern
let mut query_builder = sqlx::QueryBuilder::new(
"SELECT feature_name, feature_value, computation_timestamp FROM ml_feature_vectors WHERE feature_set_id = "
);
query_builder.push_bind(feature_set_id);
let mut param_count = 1;
// Add entity filter
if !entity_ids.is_empty() {
param_count += 1;
query.push_str(&format!(" AND entity_id = ANY(${}) ", param_count));
params.push(&entity_ids);
query_builder.push(" AND entity_id = ANY(");
query_builder.push_bind(&entity_ids);
query_builder.push(")");
}
// Add time range filter
if let Some((start, end)) = time_range {
param_count += 1;
query.push_str(&format!(" AND timestamp >= ${} ", param_count));
params.push(&start);
param_count += 1;
query.push_str(&format!(" AND timestamp <= ${} ", param_count));
params.push(&end);
query_builder.push(" AND timestamp >= ");
query_builder.push_bind(start);
query_builder.push(" AND timestamp <= ");
query_builder.push_bind(end);
}
query.push_str(" ORDER BY timestamp DESC");
query_builder.push(" ORDER BY timestamp DESC");
// Add limit
if let Some(limit_val) = limit {
param_count += 1;
query.push_str(&format!(" LIMIT ${}", param_count));
params.push(&(limit_val as i64));
}
let rows = conn.query(&query, &params).await?;
query_builder.push(" LIMIT ");
query_builder.push_bind(limit_val as i64);
}
let query = query_builder.build();
let rows = query.fetch_all(&mut *conn).await?;
let mut results = Vec::new();
for row in rows {

View File

@@ -219,40 +219,37 @@ impl PerformanceRepository {
WHERE model_id = $1
"#.to_string();
// Using sqlx query builder pattern instead of raw parameters
// Using sqlx query builder pattern
let mut query_builder = sqlx::QueryBuilder::new(
"SELECT timestamp, metric_name, metric_value, metric_metadata FROM ml_model_performance WHERE model_id = "
);
query_builder.push_bind(model_id);
let mut param_count = 1;
// Add metric name filter
if let Some(ref names) = metric_names {
param_count += 1;
query.push_str(&format!(" AND metric_name = ANY(${}) ", param_count));
params.push(names);
query_builder.push(" AND metric_name = ANY(");
query_builder.push_bind(names);
query_builder.push(")");
}
// Add time range filter
if let Some((start, end)) = time_range {
param_count += 1;
query.push_str(&format!(" AND timestamp >= ${} ", param_count));
params.push(&start);
param_count += 1;
query.push_str(&format!(" AND timestamp <= ${} ", param_count));
params.push(&end);
query_builder.push(" AND timestamp >= ");
query_builder.push_bind(start);
query_builder.push(" AND timestamp <= ");
query_builder.push_bind(end);
}
query.push_str(" ORDER BY timestamp DESC");
query_builder.push(" ORDER BY timestamp DESC");
// Add limit
if let Some(limit_val) = limit {
param_count += 1;
query.push_str(&format!(" LIMIT ${}", param_count));
params.push(&(limit_val as i64));
query_builder.push(" LIMIT ");
query_builder.push_bind(limit_val as i64);
}
let rows = conn.query(&query, &params).await?;
let query = query_builder.build();
let rows = query.fetch_all(&mut *conn).await?;
let mut metrics = Vec::new();
for row in rows {
@@ -418,22 +415,21 @@ impl PerformanceRepository {
// Using sqlx query builder pattern
let query =
if let Some(model_id) = model_id {
(r#"SELECT id, model_id, model_name, alert_type, severity, metric_name,
threshold_value, actual_value, triggered_at, message, metadata
FROM ml_performance_alerts
WHERE model_id = $1 AND status = 'active'
ORDER BY triggered_at DESC"#.to_string(),
vec![&model_id])
} else {
(r#"SELECT id, model_id, model_name, alert_type, severity, metric_name,
threshold_value, actual_value, triggered_at, message, metadata
FROM ml_performance_alerts
WHERE status = 'active'
ORDER BY triggered_at DESC"#.to_string(),
vec![])
};
let (query, params) = if let Some(model_id) = model_id {
(r#"SELECT id, model_id, model_name, alert_type, severity, metric_name,
threshold_value, actual_value, triggered_at, message, metadata
FROM ml_performance_alerts
WHERE model_id = $1 AND status = 'active'
ORDER BY triggered_at DESC"#.to_string(),
vec![&model_id])
} else {
(r#"SELECT id, model_id, model_name, alert_type, severity, metric_name,
threshold_value, actual_value, triggered_at, message, metadata
FROM ml_performance_alerts
WHERE status = 'active'
ORDER BY triggered_at DESC"#.to_string(),
vec![])
};
let rows = conn.query(&query, &params).await?;
let mut alerts = Vec::new();