lib/search: use const table names
This commit is contained in:
@@ -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<KanjiSearchResult?> searchKanjiWithDbConnection(
|
||||
) async {
|
||||
late final List<Map<String, Object?>> characters;
|
||||
final characters_query = connection.query(
|
||||
"KANJIDIC_Character",
|
||||
where: "KANJIDIC_Character.literal = ?",
|
||||
KANJIDICTableNames.character,
|
||||
where: "literal = ?",
|
||||
whereArgs: [kanji],
|
||||
);
|
||||
|
||||
late final List<Map<String, Object?>> codepoints;
|
||||
final codepoints_query = connection.query(
|
||||
"KANJIDIC_Codepoint",
|
||||
where: "KANJIDIC_Codepoint.kanji = ?",
|
||||
KANJIDICTableNames.codepoint,
|
||||
where: "kanji = ?",
|
||||
whereArgs: [kanji],
|
||||
);
|
||||
|
||||
late final List<Map<String, Object?>> kunyomis;
|
||||
final kunyomis_query = connection.query(
|
||||
"KANJIDIC_Kunyomi",
|
||||
where: "KANJIDIC_Kunyomi.kanji = ?",
|
||||
KANJIDICTableNames.kunyomi,
|
||||
where: "kanji = ?",
|
||||
whereArgs: [kanji],
|
||||
);
|
||||
|
||||
late final List<Map<String, Object?>> onyomis;
|
||||
final onyomis_query = connection.query(
|
||||
"KANJIDIC_Onyomi",
|
||||
where: "KANJIDIC_Onyomi.kanji = ?",
|
||||
KANJIDICTableNames.onyomi,
|
||||
where: "kanji = ?",
|
||||
whereArgs: [kanji],
|
||||
);
|
||||
|
||||
late final List<Map<String, Object?>> 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<Map<String, Object?>> nanoris;
|
||||
final nanoris_query = connection.query(
|
||||
"KANJIDIC_Nanori",
|
||||
where: "KANJIDIC_Nanori.kanji = ?",
|
||||
KANJIDICTableNames.nanori,
|
||||
where: "kanji = ?",
|
||||
whereArgs: [kanji],
|
||||
);
|
||||
|
||||
late final List<Map<String, Object?>> dictionary_references;
|
||||
final dictionary_references_query = connection.query(
|
||||
"KANJIDIC_DictionaryReference",
|
||||
where: "KANJIDIC_DictionaryReference.kanji = ?",
|
||||
KANJIDICTableNames.dictionaryReference,
|
||||
where: "kanji = ?",
|
||||
whereArgs: [kanji],
|
||||
);
|
||||
|
||||
late final List<Map<String, Object?>> 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<KanjiSearchResult?> 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<Map<String, Object?>> parts;
|
||||
final parts_query = connection.query(
|
||||
"RADKFILE",
|
||||
where: "RADKFILE.kanji = ?",
|
||||
RADKFILETableNames.radkfile,
|
||||
where: "kanji = ?",
|
||||
whereArgs: [kanji],
|
||||
);
|
||||
|
||||
late final List<Map<String, Object?>> readings;
|
||||
final readings_query = connection.query(
|
||||
"KANJIDIC_Reading",
|
||||
where: "KANJIDIC_Reading.kanji = ?",
|
||||
KANJIDICTableNames.reading,
|
||||
where: "kanji = ?",
|
||||
whereArgs: [kanji],
|
||||
);
|
||||
|
||||
late final List<Map<String, Object?>> 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<Map<String, Object?>> variants;
|
||||
// final variants_query = connection.query(
|
||||
// "KANJIDIC_Variant",
|
||||
// where: "KANJIDIC_Variant.kanji = ?",
|
||||
// KANJIDICTableNames.variant,
|
||||
// where: "kanji = ?",
|
||||
// whereArgs: [kanji],
|
||||
// );
|
||||
|
||||
|
||||
@@ -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<List<String>> 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<List<String>> 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,
|
||||
|
||||
Reference in New Issue
Block a user