storage: alter item trigger to perform only after relevant fields are

changed in sqlite
This commit is contained in:
nkanaev
2026-06-27 11:50:34 +01:00
parent 17ce8a430c
commit 76d6bf2bab
2 changed files with 12 additions and 10 deletions

View File

@@ -22,6 +22,7 @@ var migrations = []func(*sql.Tx) error{
m12_remove_feed_sizes,
m13_consolidate_feed_states,
m14_upgrade_fts5,
m15_update_item_update_trigger,
}
var maxVersion = int64(len(migrations))
@@ -420,3 +421,14 @@ func m14_upgrade_fts5(tx *sql.Tx) error {
_, err := tx.Exec(sql)
return err
}
func m15_update_item_update_trigger(tx *sql.Tx) error {
_, err := tx.Exec(`
drop trigger if exists items_au;
create trigger items_au after update of title, content on items begin
insert into search(search, rowid, title, content) values('delete', old.id, old.title, strip_html(old.content));
insert into search(rowid, title, content) values (new.id, new.title, strip_html(new.content));
end;
`)
return err
}

View File

@@ -223,16 +223,6 @@ func TestListItems(t *testing.T) {
t.Fail()
}
// filter by search
search1 := "title111"
have = getItemGuids(db.ListItems(model.ItemFilter{Search: &search1}, 4, true, false))
want = []string{"item111"}
if !reflect.DeepEqual(have, want) {
t.Logf("want: %#v", want)
t.Logf("have: %#v", have)
t.Fail()
}
// sort by date
have = getItemGuids(db.ListItems(model.ItemFilter{}, 4, true, false))
want = []string{"item013", "item012", "item011", "item212"}