diff --git a/migrations/0001_JMDict.sql b/migrations/0001_JMDict.sql index 491614e..2c12fed 100644 --- a/migrations/0001_JMDict.sql +++ b/migrations/0001_JMDict.sql @@ -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; diff --git a/migrations/0009_Views.sql b/migrations/0009_Views.sql index 0b568c2..0562958 100644 --- a/migrations/0009_Views.sql +++ b/migrations/0009_Views.sql @@ -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