-- +goose Up -- +goose StatementBegin -- The general search: opportunities_fts (migration 00006) now also indexes -- the description and the buyer's name, and classification_codes_fts -- indexes classification descriptions. Both are kept in sync by triggers. DROP TRIGGER IF EXISTS "opportunities_fts_update"; DROP TRIGGER IF EXISTS "opportunities_fts_delete"; DROP TRIGGER IF EXISTS "opportunities_fts_insert"; DROP TABLE IF EXISTS "opportunities_fts"; CREATE VIRTUAL TABLE "opportunities_fts" USING fts5( "title", "description", "buyer_name", content = 'opportunities', content_rowid = 'id', tokenize = 'porter unicode61 remove_diacritics 2' ); CREATE TRIGGER "opportunities_fts_insert" AFTER INSERT ON "opportunities" BEGIN INSERT INTO "opportunities_fts" ("rowid", "title", "description", "buyer_name") VALUES (new."id", new."title", new."description", new."buyer_name"); END; CREATE TRIGGER "opportunities_fts_delete" AFTER DELETE ON "opportunities" BEGIN INSERT INTO "opportunities_fts" ("opportunities_fts", "rowid", "title", "description", "buyer_name") VALUES ('delete', old."id", old."title", old."description", old."buyer_name"); END; CREATE TRIGGER "opportunities_fts_update" AFTER UPDATE OF "title", "description", "buyer_name" ON "opportunities" BEGIN INSERT INTO "opportunities_fts" ("opportunities_fts", "rowid", "title", "description", "buyer_name") VALUES ('delete', old."id", old."title", old."description", old."buyer_name"); INSERT INTO "opportunities_fts" ("rowid", "title", "description", "buyer_name") VALUES (new."id", new."title", new."description", new."buyer_name"); END; INSERT INTO "opportunities_fts" ("opportunities_fts") VALUES ('rebuild'); CREATE VIRTUAL TABLE "classification_codes_fts" USING fts5( "classification", content = 'classification_codes', content_rowid = 'id', tokenize = 'porter unicode61 remove_diacritics 2' ); CREATE TRIGGER "classification_codes_fts_insert" AFTER INSERT ON "classification_codes" BEGIN INSERT INTO "classification_codes_fts" ("rowid", "classification") VALUES (new."id", new."classification"); END; CREATE TRIGGER "classification_codes_fts_delete" AFTER DELETE ON "classification_codes" BEGIN INSERT INTO "classification_codes_fts" ("classification_codes_fts", "rowid", "classification") VALUES ('delete', old."id", old."classification"); END; CREATE TRIGGER "classification_codes_fts_update" AFTER UPDATE OF "classification" ON "classification_codes" BEGIN INSERT INTO "classification_codes_fts" ("classification_codes_fts", "rowid", "classification") VALUES ('delete', old."id", old."classification"); INSERT INTO "classification_codes_fts" ("rowid", "classification") VALUES (new."id", new."classification"); END; INSERT INTO "classification_codes_fts" ("classification_codes_fts") VALUES ('rebuild'); -- +goose StatementEnd -- +goose Down -- +goose StatementBegin DROP TRIGGER IF EXISTS "classification_codes_fts_update"; DROP TRIGGER IF EXISTS "classification_codes_fts_delete"; DROP TRIGGER IF EXISTS "classification_codes_fts_insert"; DROP TABLE IF EXISTS "classification_codes_fts"; DROP TRIGGER IF EXISTS "opportunities_fts_update"; DROP TRIGGER IF EXISTS "opportunities_fts_delete"; DROP TRIGGER IF EXISTS "opportunities_fts_insert"; DROP TABLE IF EXISTS "opportunities_fts"; CREATE VIRTUAL TABLE "opportunities_fts" USING fts5( "title", content = 'opportunities', content_rowid = 'id', tokenize = 'porter unicode61 remove_diacritics 2' ); CREATE TRIGGER "opportunities_fts_insert" AFTER INSERT ON "opportunities" BEGIN INSERT INTO "opportunities_fts" ("rowid", "title") VALUES (new."id", new."title"); END; CREATE TRIGGER "opportunities_fts_delete" AFTER DELETE ON "opportunities" BEGIN INSERT INTO "opportunities_fts" ("opportunities_fts", "rowid", "title") VALUES ('delete', old."id", old."title"); END; CREATE TRIGGER "opportunities_fts_update" AFTER UPDATE OF "title" ON "opportunities" BEGIN INSERT INTO "opportunities_fts" ("opportunities_fts", "rowid", "title") VALUES ('delete', old."id", old."title"); INSERT INTO "opportunities_fts" ("rowid", "title") VALUES (new."id", new."title"); END; INSERT INTO "opportunities_fts" ("opportunities_fts") VALUES ('rebuild'); -- +goose StatementEnd