diff --git a/crates/collab/src/db.rs b/crates/collab/src/db.rs index 78b6547ef2..785965905a 100644 --- a/crates/collab/src/db.rs +++ b/crates/collab/src/db.rs @@ -1554,20 +1554,20 @@ where .await?; } - let mut params = "(?, ?),".repeat(worktrees.len()); + let mut params = "?,".repeat(worktrees.len()); if !worktrees.is_empty() { params.pop(); } let query = format!( " DELETE FROM worktrees - WHERE (project_id, id) NOT IN ({params}) + WHERE project_id = ? AND worktree_id NOT IN ({params}) ", ); - let mut query = sqlx::query(&query); + let mut query = sqlx::query(&query).bind(project_id); for worktree in worktrees { - query = query.bind(project_id).bind(WorktreeId(worktree.id as i32)); + query = query.bind(WorktreeId(worktree.id as i32)); } query.execute(&mut tx).await?; @@ -1685,21 +1685,18 @@ where } if !update.removed_entries.is_empty() { - let mut params = "(?, ?, ?),".repeat(update.removed_entries.len()); + let mut params = "?,".repeat(update.removed_entries.len()); params.pop(); let query = format!( " DELETE FROM worktree_entries - WHERE (project_id, worktree_id, entry_id) IN ({params}) + WHERE project_id = ? AND worktree_id = ? AND entry_id IN ({params}) " ); - let mut query = sqlx::query(&query); + let mut query = sqlx::query(&query).bind(project_id).bind(worktree_id); for entry_id in &update.removed_entries { - query = query - .bind(project_id) - .bind(worktree_id) - .bind(*entry_id as i64); + query = query.bind(*entry_id as i64); } query.execute(&mut tx).await?; } @@ -1832,7 +1829,7 @@ where }) .collect::>(); - let mut params = "(?, ?),".repeat(worktrees.len()); + let mut params = "?,".repeat(worktrees.len()); if !worktrees.is_empty() { params.pop(); } @@ -1843,12 +1840,12 @@ where " SELECT * FROM worktree_entries - WHERE (project_id, worktree_id) IN ({params}) + WHERE project_id = ? AND worktree_id IN ({params}) ", ); - let mut entries = sqlx::query_as::<_, WorktreeEntry>(&query); + let mut entries = sqlx::query_as::<_, WorktreeEntry>(&query).bind(project_id); for worktree_id in worktrees.keys() { - entries = entries.bind(project_id).bind(*worktree_id); + entries = entries.bind(*worktree_id); } let mut entries = entries.fetch(&mut tx); while let Some(entry) = entries.next().await { @@ -1876,12 +1873,13 @@ where " SELECT * FROM worktree_diagnostic_summaries - WHERE (project_id, worktree_id) IN ({params}) + WHERE project_id = $1 AND worktree_id IN ({params}) ", ); - let mut summaries = sqlx::query_as::<_, WorktreeDiagnosticSummary>(&query); + let mut summaries = + sqlx::query_as::<_, WorktreeDiagnosticSummary>(&query).bind(project_id); for worktree_id in worktrees.keys() { - summaries = summaries.bind(project_id).bind(*worktree_id); + summaries = summaries.bind(*worktree_id); } let mut summaries = summaries.fetch(&mut tx); while let Some(summary) = summaries.next().await {