From 343f1f320cb7fb6f5dbc96777578e04bdda65581 Mon Sep 17 00:00:00 2001 From: Abdullah Atta Date: Fri, 23 Feb 2024 19:30:15 +0500 Subject: [PATCH] core: fix `database image is malformed` error on unlocking a note --- packages/core/src/database/triggers.ts | 32 +++----------------------- 1 file changed, 3 insertions(+), 29 deletions(-) diff --git a/packages/core/src/database/triggers.ts b/packages/core/src/database/triggers.ts index dde334a2e..ecbf313cf 100644 --- a/packages/core/src/database/triggers.ts +++ b/packages/core/src/database/triggers.ts @@ -67,19 +67,13 @@ export async function createTriggers(db: Kysely) { .temporary() .onTable("content", "main") .after() - .addEvent("update", ["data"]) - .when((eb) => - eb.and([ - eb.or([eb("new.deleted", "is", null), eb("new.deleted", "==", false)]), - eb.or([eb("new.locked", "is", null), eb("new.locked", "==", false)]) - ]) - ) + .addEvent("update") .addQuery((c) => c.insertInto("content_fts").values({ content_fts: sql.lit("delete"), rowid: sql.ref("old.rowid"), id: sql.ref("old.id"), - data: sql.ref("old.data"), + data: sql`IIF(old.locked == 1, '', old.data)`, noteId: sql.ref("old.noteId") }) ) @@ -87,32 +81,12 @@ export async function createTriggers(db: Kysely) { c.insertInto("content_fts").values({ rowid: sql`new.rowid`, id: sql`new.id`, - data: sql`new.data`, + data: sql`IIF(new.locked == 1, '', new.data)`, noteId: sql`new.noteId` }) ) .execute(); - await db.schema - .createTrigger("content_after_update_locked_or_deleted_content_fts") - .temporary() - .onTable("content", "main") - .after() - .addEvent("update", ["deleted", "locked"]) - .when((eb) => - eb.or([eb("new.deleted", "is", true), eb("new.locked", "is", true)]) - ) - .addQuery((c) => - c.insertInto("content_fts").values({ - content_fts: sql.lit("delete"), - rowid: sql.ref("old.rowid"), - id: sql.ref("old.id"), - data: sql.ref("old.data"), - noteId: sql.ref("old.noteId") - }) - ) - .execute(); - // notes triggers await db.schema .createTrigger("notes_after_insert_notes_fts")