🔧 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:
@@ -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, ¶ms).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 {
|
||||
|
||||
@@ -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, ¶ms).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, ¶ms).await?;
|
||||
|
||||
let mut alerts = Vec::new();
|
||||
|
||||
Reference in New Issue
Block a user