migrations: add FTS tables + view for querying example words
This commit is contained in:
55
migrations/0003_JMDict_FTS5_Ttables.sql
Normal file
55
migrations/0003_JMDict_FTS5_Ttables.sql
Normal file
@@ -0,0 +1,55 @@
|
||||
CREATE VIRTUAL TABLE "JMdict_KanjiElementFTS" USING FTS5("entryId" UNINDEXED, "reading");
|
||||
|
||||
CREATE TRIGGER "JMdict_KanjiElement_InsertFTS"
|
||||
AFTER INSERT ON "JMdict_KanjiElement"
|
||||
BEGIN
|
||||
INSERT INTO "JMdict_KanjiElementFTS"("entryId", "reading")
|
||||
VALUES (NEW."entryId", NEW."reading");
|
||||
END;
|
||||
|
||||
CREATE TRIGGER "JMdict_KanjiElement_UpdateFTS"
|
||||
AFTER UPDATE OF "entryId", "reading"
|
||||
ON "JMdict_KanjiElement"
|
||||
BEGIN
|
||||
UPDATE "JMdict_KanjiElementFTS"
|
||||
SET
|
||||
"entryId" = NEW."entryId",
|
||||
"reading" = NEW."reading"
|
||||
WHERE "entryId" = OLD."entryId";
|
||||
END;
|
||||
|
||||
CREATE TRIGGER "JMdict_KanjiElement_DeleteFTS"
|
||||
AFTER DELETE ON "JMdict_KanjiElement"
|
||||
BEGIN
|
||||
DELETE FROM "JMdict_KanjiElementFTS"
|
||||
WHERE "entryId" = OLD."entryId";
|
||||
END;
|
||||
|
||||
|
||||
|
||||
CREATE VIRTUAL TABLE "JMdict_ReadingElementFTS" USING FTS5("entryId" UNINDEXED, "reading");
|
||||
|
||||
CREATE TRIGGER "JMdict_ReadingElement_InsertFTS"
|
||||
AFTER INSERT ON "JMdict_ReadingElement"
|
||||
BEGIN
|
||||
INSERT INTO "JMdict_ReadingElementFTS"("entryId", "reading")
|
||||
VALUES (NEW."entryId", NEW."reading");
|
||||
END;
|
||||
|
||||
CREATE TRIGGER "JMdict_ReadingElement_UpdateFTS"
|
||||
AFTER UPDATE OF "entryId", "reading"
|
||||
ON "JMdict_ReadingElement"
|
||||
BEGIN
|
||||
UPDATE "JMdict_ReadingElementFTS"
|
||||
SET
|
||||
"entryId" = NEW."entryId",
|
||||
"reading" = NEW."reading"
|
||||
WHERE "entryId" = OLD."entryId";
|
||||
END;
|
||||
|
||||
CREATE TRIGGER "JMdict_ReadingElement_DeleteFTS"
|
||||
AFTER DELETE ON "JMdict_ReadingElement"
|
||||
BEGIN
|
||||
DELETE FROM "JMdict_ReadingElementFTS"
|
||||
WHERE "entryId" = OLD."entryId";
|
||||
END;
|
||||
20
migrations/0009_Views.sql
Normal file
20
migrations/0009_Views.sql
Normal file
@@ -0,0 +1,20 @@
|
||||
-- TODO: Make it possible to match words that contain the
|
||||
-- kanji as an infix
|
||||
|
||||
CREATE VIEW "KANJIDIC_ExampleEntries"("kanji", "entryId")
|
||||
AS
|
||||
SELECT
|
||||
"JMdict_KanjiElement"."entryId",
|
||||
"KANJIDIC_Character"."literal" AS "kanji",
|
||||
"JMdict_KanjiElement"."reading"
|
||||
FROM
|
||||
"KANJIDIC_Character"
|
||||
JOIN "JMdict_KanjiElementFTS"
|
||||
ON "JMdict_KanjiElementFTS"."reading" MATCH "KANJIDIC_Character"."literal" || '*'
|
||||
JOIN "JMdict_KanjiElement"
|
||||
ON "JMdict_KanjiElementFTS"."entryId" = "JMdict_KanjiElement"."entryId"
|
||||
AND "JMdict_KanjiElementFTS"."reading" LIKE '%' || "JMdict_KanjiElement"."reading"
|
||||
WHERE "JMdict_KanjiElement".news = 1
|
||||
OR "JMdict_KanjiElement".ichi = 1
|
||||
OR "JMdict_KanjiElement".spec = 1
|
||||
OR "JMdict_KanjiElement".gai = 1;
|
||||
Reference in New Issue
Block a user