From a7074c5c9efd965fd8c314172448efc68a633c2b Mon Sep 17 00:00:00 2001 From: "P. Reis" Date: Tue, 24 Sep 2024 14:39:03 -0300 Subject: [PATCH] fix: rollback to savepoint if updateStats() function fails --- src/pipeline.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/pipeline.ts b/src/pipeline.ts index a1222767..e90e4e4f 100644 --- a/src/pipeline.ts +++ b/src/pipeline.ts @@ -136,7 +136,12 @@ async function storeEvent(event: DittoEvent, signal?: AbortSignal): Promise { - await updateStats({ event, store, kysely }).catch((e) => console.error(e)); + await sql`SAVEPOINT update_stats_savepoint`.execute(kysely); + + await updateStats({ event, store, kysely }).catch(async (e) => { + await sql`ROLLBACK TO SAVEPOINT update_stats_savepoint`.execute(kysely); + console.error(e); + }); await store.event(event, { signal }); }); }