diff --git a/lib/search/kanji_search.dart b/lib/search/kanji_search.dart index 04f873c..f5af463 100644 --- a/lib/search/kanji_search.dart +++ b/lib/search/kanji_search.dart @@ -1,4 +1,6 @@ import 'package:collection/collection.dart'; +import 'package:jadb/_data_ingestion/kanjidic/table_names.dart'; +import 'package:jadb/_data_ingestion/radkfile/table_names.dart'; import 'package:jadb/models/kanji_search/kanji_search_radical.dart'; import 'package:jadb/models/kanji_search/kanji_search_result.dart'; import 'package:sqflite_common/sqflite.dart'; @@ -9,57 +11,57 @@ Future searchKanjiWithDbConnection( ) async { late final List> characters; final characters_query = connection.query( - "KANJIDIC_Character", - where: "KANJIDIC_Character.literal = ?", + KANJIDICTableNames.character, + where: "literal = ?", whereArgs: [kanji], ); late final List> codepoints; final codepoints_query = connection.query( - "KANJIDIC_Codepoint", - where: "KANJIDIC_Codepoint.kanji = ?", + KANJIDICTableNames.codepoint, + where: "kanji = ?", whereArgs: [kanji], ); late final List> kunyomis; final kunyomis_query = connection.query( - "KANJIDIC_Kunyomi", - where: "KANJIDIC_Kunyomi.kanji = ?", + KANJIDICTableNames.kunyomi, + where: "kanji = ?", whereArgs: [kanji], ); late final List> onyomis; final onyomis_query = connection.query( - "KANJIDIC_Onyomi", - where: "KANJIDIC_Onyomi.kanji = ?", + KANJIDICTableNames.onyomi, + where: "kanji = ?", whereArgs: [kanji], ); late final List> meanings; final meanings_query = connection.query( - "KANJIDIC_Meaning", - where: "KANJIDIC_Meaning.kanji = ? AND KANJIDIC_Meaning.language = ?", + KANJIDICTableNames.meaning, + where: "kanji = ? AND language = ?", whereArgs: [kanji, 'eng'], ); late final List> nanoris; final nanoris_query = connection.query( - "KANJIDIC_Nanori", - where: "KANJIDIC_Nanori.kanji = ?", + KANJIDICTableNames.nanori, + where: "kanji = ?", whereArgs: [kanji], ); late final List> dictionary_references; final dictionary_references_query = connection.query( - "KANJIDIC_DictionaryReference", - where: "KANJIDIC_DictionaryReference.kanji = ?", + KANJIDICTableNames.dictionaryReference, + where: "kanji = ?", whereArgs: [kanji], ); late final List> query_codes; final query_codes_query = connection.query( - "KANJIDIC_QueryCode", - where: "KANJIDIC_QueryCode.kanji = ?", + KANJIDICTableNames.queryCode, + where: "kanji = ?", whereArgs: [kanji], ); @@ -69,44 +71,44 @@ Future searchKanjiWithDbConnection( SELECT DISTINCT "XREF__KANJIDIC_Radical__RADKFILE"."radicalSymbol" AS "symbol", "names" - FROM "KANJIDIC_Radical" + FROM "${KANJIDICTableNames.radical}" JOIN "XREF__KANJIDIC_Radical__RADKFILE" USING ("radicalId") LEFT JOIN ( SELECT "radicalId", group_concat("name") AS "names" - FROM "KANJIDIC_RadicalName" + FROM "${KANJIDICTableNames.radicalName}" GROUP BY "radicalId" ) USING ("radicalId") - WHERE "KANJIDIC_Radical"."kanji" = ? + WHERE "${KANJIDICTableNames.radical}"."kanji" = ? ''', [kanji], ); late final List> parts; final parts_query = connection.query( - "RADKFILE", - where: "RADKFILE.kanji = ?", + RADKFILETableNames.radkfile, + where: "kanji = ?", whereArgs: [kanji], ); late final List> readings; final readings_query = connection.query( - "KANJIDIC_Reading", - where: "KANJIDIC_Reading.kanji = ?", + KANJIDICTableNames.reading, + where: "kanji = ?", whereArgs: [kanji], ); late final List> stroke_miscounts; final stroke_miscounts_query = connection.query( - "KANJIDIC_StrokeMiscount", - where: "KANJIDIC_StrokeMiscount.kanji = ?", + KANJIDICTableNames.strokeMiscount, + where: "kanji = ?", whereArgs: [kanji], ); // TODO: add variant data to result // late final List> variants; // final variants_query = connection.query( - // "KANJIDIC_Variant", - // where: "KANJIDIC_Variant.kanji = ?", + // KANJIDICTableNames.variant, + // where: "kanji = ?", // whereArgs: [kanji], // ); diff --git a/lib/search/radical_search.dart b/lib/search/radical_search.dart index 25bd7b5..22f87a7 100644 --- a/lib/search/radical_search.dart +++ b/lib/search/radical_search.dart @@ -1,3 +1,4 @@ +import 'package:jadb/_data_ingestion/radkfile/table_names.dart'; import 'package:sqflite_common/sqlite_api.dart'; // TODO: validate that the list of radicals all are valid radicals @@ -8,14 +9,14 @@ Future> searchRemainingRadicalsWithDbConnection( ) async { final queryResult = await connection.rawQuery( ''' - SELECT DISTINCT radical - FROM RADKFILE - WHERE kanji IN ( - SELECT kanji - FROM RADKFILE - WHERE radical IN (${List.filled(radicals.length, '?').join(',')}) - GROUP BY kanji - HAVING COUNT(DISTINCT radical) = ? + SELECT DISTINCT "radical" + FROM "${RADKFILETableNames.radkfile}" + WHERE "kanji" IN ( + SELECT "kanji" + FROM "${RADKFILETableNames.radkfile}" + WHERE "radical" IN (${List.filled(radicals.length, '?').join(',')}) + GROUP BY "kanji" + HAVING COUNT(DISTINCT "radical") = ? ) ''', [ @@ -36,11 +37,11 @@ Future> searchKanjiByRadicalsWithDbConnection( ) async { final queryResult = await connection.rawQuery( ''' - SELECT kanji - FROM RADKFILE - WHERE radical IN (${List.filled(radicals.length, '?').join(',')}) - GROUP BY kanji - HAVING COUNT(DISTINCT radical) = ? + SELECT "kanji" + FROM "${RADKFILETableNames.radkfile}" + WHERE "radical" IN (${List.filled(radicals.length, '?').join(',')}) + GROUP BY "kanji" + HAVING COUNT(DISTINCT "radical") = ? ''', [ ...radicals,