migrations: move JMdict views to 0009_views

This commit is contained in:
2025-05-16 18:43:58 +02:00
parent bb9550380c
commit 90d5717928
2 changed files with 56 additions and 55 deletions

View File

@@ -240,58 +240,3 @@ CREATE TABLE "JMdict_ExampleSentence" (
"japanese" TEXT NOT NULL
-- "type" TEXT NOT NULL DEFAULT "tat",
);
---
CREATE VIEW "JMdict_EntryByKana"("kana", "entryId")
AS
SELECT
"JMdict_ReadingElement"."reading" AS "kana",
"JMdict_ReadingElement"."entryId" AS "entryId"
FROM "JMdict_ReadingElement";
CREATE VIEW "JMdict_EntryByEnglish"("english", "entryId")
AS
SELECT
"JMdict_SenseGlossary"."phrase" AS "english",
"JMdict_Sense"."senseId" AS "entryId"
FROM "JMdict_SenseGlossary" JOIN "JMdict_Sense" USING("senseId");
CREATE VIEW "JMdict_BaseAndFurigana"("entryId", "base", "furigana", "kanjiOrderNum", "readingOrderNum")
AS
SELECT
"JMdict_Entry"."entryId" AS "entryId",
CASE WHEN (
"JMdict_KanjiElement"."reading" IS NOT NULL
AND NOT "JMdict_ReadingElement"."readingDoesNotMatchKanji"
)
THEN "JMdict_KanjiElement"."reading"
ELSE "JMdict_ReadingElement"."reading"
END AS "base",
CASE WHEN (
"JMdict_KanjiElement"."reading" IS NOT NULL
AND NOT "JMdict_ReadingElement"."readingDoesNotMatchKanji"
)
THEN "JMdict_ReadingElement"."reading"
ELSE NULL
END AS "furigana",
"JMdict_KanjiElement"."orderNum" AS "kanjiOrderNum",
"JMdict_ReadingElement"."orderNum" AS "readingOrderNum"
FROM "JMdict_Entry"
LEFT JOIN "JMdict_KanjiElement" USING("entryId")
LEFT JOIN "JMdict_ReadingElement" USING("entryId");
CREATE VIEW "JMdict_EntryCommon"("entryId")
AS
SELECT DISTINCT "entryId"
FROM "JMdict_KanjiElement"
FULL OUTER JOIN "JMdict_ReadingElement" USING("entryId")
WHERE "JMdict_ReadingElement"."news" = 1
OR "JMdict_ReadingElement"."ichi" = 1
OR "JMdict_ReadingElement"."spec" = 1
OR "JMdict_ReadingElement"."gai" = 1
OR "JMdict_KanjiElement"."news" = 1
OR "JMdict_KanjiElement"."ichi" = 1
OR "JMdict_KanjiElement"."spec" = 1
OR "JMdict_KanjiElement"."gai" = 1;

View File

@@ -1,3 +1,59 @@
CREATE VIEW "JMdict_EntryByKana"("kana", "entryId")
AS
SELECT
"JMdict_ReadingElement"."reading" AS "kana",
"JMdict_ReadingElement"."entryId" AS "entryId"
FROM "JMdict_ReadingElement";
CREATE VIEW "JMdict_EntryByEnglish"("english", "entryId")
AS
SELECT
"JMdict_SenseGlossary"."phrase" AS "english",
"JMdict_Sense"."senseId" AS "entryId"
FROM "JMdict_SenseGlossary" JOIN "JMdict_Sense" USING("senseId");
CREATE VIEW "JMdict_BaseAndFurigana"("entryId", "base", "furigana", "kanjiOrderNum", "readingOrderNum")
AS
SELECT
"JMdict_Entry"."entryId" AS "entryId",
CASE WHEN (
"JMdict_KanjiElement"."reading" IS NOT NULL
AND NOT "JMdict_ReadingElement"."readingDoesNotMatchKanji"
)
THEN "JMdict_KanjiElement"."reading"
ELSE "JMdict_ReadingElement"."reading"
END AS "base",
CASE WHEN (
"JMdict_KanjiElement"."reading" IS NOT NULL
AND NOT "JMdict_ReadingElement"."readingDoesNotMatchKanji"
)
THEN "JMdict_ReadingElement"."reading"
ELSE NULL
END AS "furigana",
"JMdict_KanjiElement"."orderNum" AS "kanjiOrderNum",
"JMdict_ReadingElement"."orderNum" AS "readingOrderNum"
FROM "JMdict_Entry"
LEFT JOIN "JMdict_KanjiElement" USING("entryId")
LEFT JOIN "JMdict_ReadingElement" USING("entryId");
CREATE VIEW "JMdict_EntryCommon"("entryId")
AS
SELECT DISTINCT "entryId"
FROM "JMdict_KanjiElement"
FULL OUTER JOIN "JMdict_ReadingElement" USING("entryId")
WHERE "JMdict_ReadingElement"."news" = 1
OR "JMdict_ReadingElement"."ichi" = 1
OR "JMdict_ReadingElement"."spec" = 1
OR "JMdict_ReadingElement"."gai" = 1
OR "JMdict_KanjiElement"."news" = 1
OR "JMdict_KanjiElement"."ichi" = 1
OR "JMdict_KanjiElement"."spec" = 1
OR "JMdict_KanjiElement"."gai" = 1;
-- TODO: Make it possible to match words that contain the
-- kanji as an infix