Keep dropping the documents table if it exists

This is because we renamed `documents` to `spans`.

Co-Authored-By: Kyle Caverly <kyle@zed.dev>
This commit is contained in:
Antonio Scandurra 2023-09-07 15:15:16 +02:00
parent 93b889a93b
commit 757a285852
2 changed files with 16 additions and 12 deletions

View file

@ -124,6 +124,10 @@ impl VectorDatabase {
} }
log::trace!("vector database schema out of date. updating..."); log::trace!("vector database schema out of date. updating...");
// We renamed the `documents` table to `spans`, so we want to drop
// `documents` without recreating it if it exists.
db.execute("DROP TABLE IF EXISTS documents", [])
.context("failed to drop 'documents' table")?;
db.execute("DROP TABLE IF EXISTS spans", []) db.execute("DROP TABLE IF EXISTS spans", [])
.context("failed to drop 'spans' table")?; .context("failed to drop 'spans' table")?;
db.execute("DROP TABLE IF EXISTS files", []) db.execute("DROP TABLE IF EXISTS files", [])

View file

@ -92,8 +92,8 @@ pub struct SemanticIndex {
struct ProjectState { struct ProjectState {
worktrees: HashMap<WorktreeId, WorktreeState>, worktrees: HashMap<WorktreeId, WorktreeState>,
outstanding_job_count_rx: watch::Receiver<usize>, pending_file_count_rx: watch::Receiver<usize>,
outstanding_job_count_tx: Arc<Mutex<watch::Sender<usize>>>, pending_file_count_tx: Arc<Mutex<watch::Sender<usize>>>,
_subscription: gpui::Subscription, _subscription: gpui::Subscription,
} }
@ -178,12 +178,12 @@ impl JobHandle {
impl ProjectState { impl ProjectState {
fn new(subscription: gpui::Subscription) -> Self { fn new(subscription: gpui::Subscription) -> Self {
let (outstanding_job_count_tx, outstanding_job_count_rx) = watch::channel_with(0); let (pending_file_count_tx, pending_file_count_rx) = watch::channel_with(0);
let outstanding_job_count_tx = Arc::new(Mutex::new(outstanding_job_count_tx)); let pending_file_count_tx = Arc::new(Mutex::new(pending_file_count_tx));
Self { Self {
worktrees: Default::default(), worktrees: Default::default(),
outstanding_job_count_rx, pending_file_count_rx,
outstanding_job_count_tx, pending_file_count_tx,
_subscription: subscription, _subscription: subscription,
} }
} }
@ -605,7 +605,7 @@ impl SemanticIndex {
Some( Some(
self.projects self.projects
.get(&project.downgrade())? .get(&project.downgrade())?
.outstanding_job_count_rx .pending_file_count_rx
.clone(), .clone(),
) )
} }
@ -774,8 +774,8 @@ impl SemanticIndex {
.insert(project.downgrade(), ProjectState::new(subscription)); .insert(project.downgrade(), ProjectState::new(subscription));
self.project_worktrees_changed(project.clone(), cx); self.project_worktrees_changed(project.clone(), cx);
} }
let project_state = self.projects.get(&project.downgrade()).unwrap(); let project_state = &self.projects[&project.downgrade()];
let mut outstanding_job_count_rx = project_state.outstanding_job_count_rx.clone(); let mut pending_file_count_rx = project_state.pending_file_count_rx.clone();
let db = self.db.clone(); let db = self.db.clone();
let language_registry = self.language_registry.clone(); let language_registry = self.language_registry.clone();
@ -792,7 +792,7 @@ impl SemanticIndex {
.projects .projects
.get_mut(&project.downgrade()) .get_mut(&project.downgrade())
.ok_or_else(|| anyhow!("project was dropped"))?; .ok_or_else(|| anyhow!("project was dropped"))?;
let outstanding_job_count_tx = &project_state.outstanding_job_count_tx; let pending_file_count_tx = &project_state.pending_file_count_tx;
project_state project_state
.worktrees .worktrees
@ -816,7 +816,7 @@ impl SemanticIndex {
files_to_delete.push((worktree_state.db_id, path.clone())); files_to_delete.push((worktree_state.db_id, path.clone()));
} else { } else {
let absolute_path = worktree.read(cx).absolutize(path); let absolute_path = worktree.read(cx).absolutize(path);
let job_handle = JobHandle::new(outstanding_job_count_tx); let job_handle = JobHandle::new(pending_file_count_tx);
pending_files.push(PendingFile { pending_files.push(PendingFile {
absolute_path, absolute_path,
relative_path: path.clone(), relative_path: path.clone(),
@ -879,7 +879,7 @@ impl SemanticIndex {
} }
// Wait until we're done indexing. // Wait until we're done indexing.
while let Some(count) = outstanding_job_count_rx.next().await { while let Some(count) = pending_file_count_rx.next().await {
if count == 0 { if count == 0 {
break; break;
} }