core: fix database image is malformed error on updating locked note

This commit is contained in:
Abdullah Atta
2024-02-19 18:00:27 +05:00
parent 8af190e83d
commit 1dcd227014

View File

@@ -53,7 +53,6 @@ export async function createTriggers(db: Kysely<RawDatabaseSchema>) {
.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")
@@ -67,10 +66,15 @@ export async function createTriggers(db: Kysely<RawDatabaseSchema>) {
.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)])
])
)
.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")
@@ -80,12 +84,31 @@ export async function createTriggers(db: Kysely<RawDatabaseSchema>) {
c.insertInto("content_fts").values({
rowid: sql`new.rowid`,
id: sql`new.id`,
data: sql`IIF(new.locked == 1, '', new.data)`,
data: sql`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"),
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")
@@ -116,7 +139,6 @@ export async function createTriggers(db: Kysely<RawDatabaseSchema>) {
.addQuery((c) =>
c.insertInto("notes_fts").values({
notes_fts: sql.lit("delete"),
rowid: sql.ref("old.rowid"),
id: sql.ref("old.id"),
title: sql.ref("old.title")
})
@@ -132,7 +154,6 @@ export async function createTriggers(db: Kysely<RawDatabaseSchema>) {
.addQuery((c) =>
c.insertInto("notes_fts").values({
notes_fts: sql.lit("delete"),
rowid: sql.ref("old.rowid"),
id: sql.ref("old.id"),
title: sql.ref("old.title")
})