From a46381849f6009430dd3bb8e56f89fea382f98fe Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Tue, 5 Sep 2023 17:25:54 -0500 Subject: [PATCH] db/events: delete FTS rows when deleting events --- src/db/events.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/db/events.ts b/src/db/events.ts index fdca7ca..b86e70d 100644 --- a/src/db/events.ts +++ b/src/db/events.ts @@ -154,11 +154,18 @@ async function getFilters( /** Delete events based on filters from the database. */ function deleteFilters(filters: DittoFilter[]) { if (!filters.length) return Promise.resolve([]); - const query = getFiltersQuery(filters); - return db.deleteFrom('events') - .where('id', 'in', () => query.clearSelect().select('id')) - .execute(); + return db.transaction().execute(async (trx) => { + const query = getFiltersQuery(filters).clearSelect().select('id'); + + await trx.deleteFrom('events_fts') + .where('id', 'in', () => query) + .execute(); + + return trx.deleteFrom('events') + .where('id', 'in', () => query) + .execute(); + }); } /** Get number of events that would be returned by filters. */