From 9038119eb78cf9e44b7fd43dd8740fd6fff89d68 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Wed, 14 May 2025 17:12:29 +0200 Subject: [PATCH] Consistently use `senseId` name everywhere --- lib/_data_ingestion/jmdict/objects.dart | 6 ++--- lib/_data_ingestion/jmdict/seed_data.dart | 22 ++++++++--------- lib/_data_ingestion/jmdict/xml_parser.dart | 2 +- lib/_data_ingestion/tanos-jlpt/resolve.dart | 2 +- lib/search/word_search.dart | 4 ++-- migrations/0001_JMDict.sql | 26 ++++++++++----------- 6 files changed, 31 insertions(+), 31 deletions(-) diff --git a/lib/_data_ingestion/jmdict/objects.dart b/lib/_data_ingestion/jmdict/objects.dart index 7e88dd4..522e815 100644 --- a/lib/_data_ingestion/jmdict/objects.dart +++ b/lib/_data_ingestion/jmdict/objects.dart @@ -161,7 +161,7 @@ class XRef { } class Sense extends SQLWritable { - final int id; + final int senseId; final int orderNum; final List antonyms; final List dialects; @@ -176,7 +176,7 @@ class Sense extends SQLWritable { final List seeAlso; const Sense({ - required this.id, + required this.senseId, required this.orderNum, this.antonyms = const [], this.dialects = const [], @@ -193,7 +193,7 @@ class Sense extends SQLWritable { @override Map get sqlValue => { - 'id': id, + 'senseId': senseId, 'orderNum': orderNum, }; diff --git a/lib/_data_ingestion/jmdict/seed_data.dart b/lib/_data_ingestion/jmdict/seed_data.dart index b5e142b..315677b 100644 --- a/lib/_data_ingestion/jmdict/seed_data.dart +++ b/lib/_data_ingestion/jmdict/seed_data.dart @@ -132,43 +132,43 @@ Future seedJMDictData(List entries, Database db) async { for (final d in s.dialects) { b.insert( JMdictTableNames.senseDialect, - {'senseId': s.id, 'dialect': d}, + {'senseId': s.senseId, 'dialect': d}, ); } for (final f in s.fields) { - b.insert(JMdictTableNames.senseField, {'senseId': s.id, 'field': f}); + b.insert(JMdictTableNames.senseField, {'senseId': s.senseId, 'field': f}); } for (final i in s.info) { - b.insert(JMdictTableNames.senseInfo, {'senseId': s.id, 'info': i}); + b.insert(JMdictTableNames.senseInfo, {'senseId': s.senseId, 'info': i}); } for (final m in s.misc) { - b.insert(JMdictTableNames.senseMisc, {'senseId': s.id, 'misc': m}); + b.insert(JMdictTableNames.senseMisc, {'senseId': s.senseId, 'misc': m}); } for (final p in s.pos) { - b.insert(JMdictTableNames.sensePOS, {'senseId': s.id, 'pos': p}); + b.insert(JMdictTableNames.sensePOS, {'senseId': s.senseId, 'pos': p}); } for (final rk in s.restrictedToKanji) { b.insert( JMdictTableNames.senseRestrictedToKanji, - {'entryId': e.entryId, 'senseId': s.id, 'kanji': rk}, + {'entryId': e.entryId, 'senseId': s.senseId, 'kanji': rk}, ); } for (final rr in s.restrictedToReading) { b.insert( JMdictTableNames.senseRestrictedToReading, - {'entryId': e.entryId, 'senseId': s.id, 'reading': rr}, + {'entryId': e.entryId, 'senseId': s.senseId, 'reading': rr}, ); } for (final ls in s.languageSource) { b.insert( JMdictTableNames.senseLanguageSource, - ls.sqlValue..addAll({'senseId': s.id}), + ls.sqlValue..addAll({'senseId': s.senseId}), ); } for (final g in s.glossary) { b.insert( JMdictTableNames.senseGlossary, - g.sqlValue..addAll({'senseId': s.id}), + g.sqlValue..addAll({'senseId': s.senseId}), ); } } @@ -214,7 +214,7 @@ Future seedJMDictData(List entries, Database db) async { b.insert( JMdictTableNames.senseSeeAlso, { - 'senseId': s.id, + 'senseId': s.senseId, 'xrefEntryId': resolvedEntry.entry.entryId, 'seeAlsoKanji': xref.kanjiRef, 'seeAlsoReading': xref.readingRef, @@ -232,7 +232,7 @@ Future seedJMDictData(List entries, Database db) async { ); b.insert(JMdictTableNames.senseAntonyms, { - 'senseId': s.id, + 'senseId': s.senseId, 'xrefEntryId': resolvedEntry.entry.entryId, 'antonymKanji': ant.kanjiRef, 'antonymReading': ant.readingRef, diff --git a/lib/_data_ingestion/jmdict/xml_parser.dart b/lib/_data_ingestion/jmdict/xml_parser.dart index 0ba7875..3de3976 100644 --- a/lib/_data_ingestion/jmdict/xml_parser.dart +++ b/lib/_data_ingestion/jmdict/xml_parser.dart @@ -127,7 +127,7 @@ List parseJMDictData(XmlElement root) { for (final (orderNum, sense) in entry.findElements('sense').indexed) { senseId++; final result = Sense( - id: senseId, + senseId: senseId, orderNum: orderNum + 1, restrictedToKanji: sense.findElements('stagk').map((e) => e.innerText).toList(), diff --git a/lib/_data_ingestion/tanos-jlpt/resolve.dart b/lib/_data_ingestion/tanos-jlpt/resolve.dart index 33217d6..654d85f 100644 --- a/lib/_data_ingestion/tanos-jlpt/resolve.dart +++ b/lib/_data_ingestion/tanos-jlpt/resolve.dart @@ -37,7 +37,7 @@ Future> _findSenseCandidates( db .rawQuery('SELECT entryId, phrase ' 'FROM ${JMdictTableNames.senseGlossary} ' - 'JOIN ${JMdictTableNames.sense} ON ${JMdictTableNames.senseGlossary}.senseId = ${JMdictTableNames.sense}.id ' + 'JOIN ${JMdictTableNames.sense} USING (senseId)' 'WHERE phrase IN (${word.meanings.map((e) => escapeStringValue(e)).join(',')})') .then((rows) => rows .map((row) => (row['entryId'] as int, row['phrase'] as String)) diff --git a/lib/search/word_search.dart b/lib/search/word_search.dart index 6910c40..02234c8 100644 --- a/lib/search/word_search.dart +++ b/lib/search/word_search.dart @@ -81,7 +81,7 @@ Future?> searchWordWithDbConnection( // Sense queries - final senseIds = senses.map((element) => element['id'] as int).toList(); + final senseIds = senses.map((sense) => sense['senseId'] as int).toList(); late final List> senseAntonyms; final Future>> senseAntonyms_query = @@ -450,7 +450,7 @@ List _regroup_senses({ final List result = []; for (final sense in senses) { - final int senseId = sense['id'] as int; + final int senseId = sense['senseId'] as int; final antonyms = groupedSenseAntonyms[senseId] ?? []; final dialects = groupedSenseDialects[senseId] ?? []; diff --git a/migrations/0001_JMDict.sql b/migrations/0001_JMDict.sql index 3e38fcf..9dec0ff 100644 --- a/migrations/0001_JMDict.sql +++ b/migrations/0001_JMDict.sql @@ -99,7 +99,7 @@ CREATE TABLE "JMdict_ReadingElementInfo" ( -- Sense CREATE TABLE "JMdict_Sense" ( - "id" INTEGER PRIMARY KEY, + "senseId" INTEGER PRIMARY KEY, "entryId" INTEGER NOT NULL REFERENCES "JMdict_Entry"("entryId"), "orderNum" INTEGER NOT NULL, UNIQUE("entryId", "orderNum") @@ -109,7 +109,7 @@ CREATE INDEX "JMdict_Sense_byEntryId_byOrderNum" ON "JMdict_Sense"("entryId", "o CREATE TABLE "JMdict_SenseRestrictedToKanji" ( "entryId" INTEGER NOT NULL, - "senseId" INTEGER NOT NULL REFERENCES "JMdict_Sense"("id"), + "senseId" INTEGER NOT NULL REFERENCES "JMdict_Sense"("senseId"), "kanji" TEXT NOT NULL, FOREIGN KEY ("entryId", "kanji") REFERENCES "JMdict_KanjiElement"("entryId", "reading"), PRIMARY KEY ("entryId", "senseId", "kanji") @@ -117,7 +117,7 @@ CREATE TABLE "JMdict_SenseRestrictedToKanji" ( CREATE TABLE "JMdict_SenseRestrictedToReading" ( "entryId" INTEGER NOT NULL, - "senseId" INTEGER NOT NULL REFERENCES "JMdict_Sense"("id"), + "senseId" INTEGER NOT NULL REFERENCES "JMdict_Sense"("senseId"), "reading" TEXT NOT NULL, FOREIGN KEY ("entryId", "reading") REFERENCES "JMdict_ReadingElement"("entryId", "reading"), PRIMARY KEY ("entryId", "senseId", "reading") @@ -134,7 +134,7 @@ CREATE TABLE "JMdict_SenseRestrictedToReading" ( -- These two things also concern "SenseAntonym" CREATE TABLE "JMdict_SenseSeeAlso" ( - "senseId" INTEGER NOT NULL REFERENCES "JMdict_Sense"("id"), + "senseId" INTEGER NOT NULL REFERENCES "JMdict_Sense"("senseId"), "xrefEntryId" INTEGER NOT NULL, "seeAlsoReading" TEXT, "seeAlsoKanji" TEXT, @@ -150,7 +150,7 @@ CREATE TABLE "JMdict_SenseSeeAlso" ( ); CREATE TABLE "JMdict_SenseAntonym" ( - "senseId" INTEGER NOT NULL REFERENCES "JMdict_Sense"("id"), + "senseId" INTEGER NOT NULL REFERENCES "JMdict_Sense"("senseId"), "xrefEntryId" INTEGER NOT NULL, "antonymReading" TEXT, "antonymKanji" TEXT, @@ -170,7 +170,7 @@ CREATE INDEX "JMdict_SenseSeeAlso_bySenseId" ON "JMdict_SenseSeeAlso"("senseId") CREATE INDEX "JMdict_SenseAntonym_bySenseId" ON "JMdict_SenseAntonym"("senseId"); CREATE TABLE "JMdict_SensePOS" ( - "senseId" INTEGER NOT NULL REFERENCES "JMdict_Sense"("id"), + "senseId" INTEGER NOT NULL REFERENCES "JMdict_Sense"("senseId"), "pos" TEXT NOT NULL REFERENCES "JMdict_InfoPOS"("id"), PRIMARY KEY ("senseId", "pos") ) WITHOUT ROWID; @@ -178,19 +178,19 @@ CREATE TABLE "JMdict_SensePOS" ( CREATE TABLE "JMdict_SenseField" ( "senseId" INTEGER NOT NULL, "field" TEXT NOT NULL, - FOREIGN KEY ("senseId") REFERENCES "JMdict_Sense"("id"), + FOREIGN KEY ("senseId") REFERENCES "JMdict_Sense"("senseId"), FOREIGN KEY ("field") REFERENCES "JMdict_InfoField"("id"), PRIMARY KEY ("senseId", "field") ) WITHOUT ROWID; CREATE TABLE "JMdict_SenseMisc" ( - "senseId" INTEGER NOT NULL REFERENCES "JMdict_Sense"("id"), + "senseId" INTEGER NOT NULL REFERENCES "JMdict_Sense"("senseId"), "misc" TEXT NOT NULL REFERENCES "JMdict_InfoMisc"("id"), PRIMARY KEY ("senseId", "misc") ) WITHOUT ROWID; CREATE TABLE "JMdict_SenseLanguageSource" ( - "senseId" INTEGER NOT NULL REFERENCES "JMdict_Sense"("id"), + "senseId" INTEGER NOT NULL REFERENCES "JMdict_Sense"("senseId"), "language" CHAR(3) NOT NULL DEFAULT "eng", "phrase" TEXT, "fullyDescribesSense" BOOLEAN NOT NULL DEFAULT TRUE, @@ -199,7 +199,7 @@ CREATE TABLE "JMdict_SenseLanguageSource" ( ); CREATE TABLE "JMdict_SenseDialect" ( - "senseId" INTEGER NOT NULL REFERENCES "JMdict_Sense"("id"), + "senseId" INTEGER NOT NULL REFERENCES "JMdict_Sense"("senseId"), "dialect" TEXT NOT NULL REFERENCES "JMdict_InfoDialect"("id"), PRIMARY KEY ("senseId", "dialect") ) WITHOUT ROWID; @@ -210,7 +210,7 @@ CREATE TABLE "JMdict_SenseDialect" ( -- will be omitted. CREATE TABLE "JMdict_SenseGlossary" ( - "senseId" INTEGER NOT NULL REFERENCES "JMdict_Sense"("id"), + "senseId" INTEGER NOT NULL REFERENCES "JMdict_Sense"("senseId"), "phrase" TEXT NOT NULL, "language" CHAR(3) NOT NULL DEFAULT "eng", "type" TEXT, @@ -220,7 +220,7 @@ CREATE TABLE "JMdict_SenseGlossary" ( CREATE INDEX "JMdict_SenseGlossary_byPhrase" ON JMdict_SenseGlossary("phrase"); CREATE TABLE "JMdict_SenseInfo" ( - "senseId" INTEGER NOT NULL REFERENCES "JMdict_Sense"("id"), + "senseId" INTEGER NOT NULL REFERENCES "JMdict_Sense"("senseId"), "info" TEXT NOT NULL, PRIMARY KEY ("senseId", "info") ) WITHOUT ROWID; @@ -229,7 +229,7 @@ CREATE TABLE "JMdict_SenseInfo" ( -- the Tanaka Corpus, so I will leave the type out for now. CREATE TABLE "JMdict_ExampleSentence" ( - "senseId" INTEGER NOT NULL REFERENCES "JMdict_Sense"("id"), + "senseId" INTEGER NOT NULL REFERENCES "JMdict_Sense"("senseId"), "word" TEXT NOT NULL, "source" TEXT NOT NULL, "sourceLanguage" CHAR(3) NOT NULL DEFAULT "eng",