lib/search/word_search: use const table names

This commit is contained in:
2025-05-16 17:06:01 +02:00
parent 9d9ce840fa
commit 3680827176

View File

@@ -1,3 +1,5 @@
import 'package:jadb/_data_ingestion/jmdict/table_names.dart';
import 'package:jadb/_data_ingestion/tanos-jlpt/table_names.dart';
import 'package:jadb/util/sqlite_utils.dart';
import 'package:sqflite_common/sqflite.dart';
@@ -51,30 +53,29 @@ Future<LinearWordQueryData> fetchLinearWordQueryData(
DatabaseExecutor connection,
List<int> entryIds,
) async {
late final List<Map<String, Object?>> senses;
final Future<List<Map<String, Object?>>> senses_query = connection.query(
'JMdict_Sense',
JMdictTableNames.sense,
where: 'entryId IN (${entryIds.join(',')})',
);
late final List<Map<String, Object?>> readingElements;
final Future<List<Map<String, Object?>>> readingElements_query =
connection.query(
'JMdict_ReadingElement',
JMdictTableNames.readingElement,
where: 'entryId IN (${entryIds.join(',')})',
);
late final List<Map<String, Object?>> kanjiElements;
final Future<List<Map<String, Object?>>> kanjiElements_query =
connection.query(
'JMdict_KanjiElement',
JMdictTableNames.kanjiElement,
where: 'entryId IN (${entryIds.join(',')})',
);
late final List<Map<String, Object?>> jlptTags;
final Future<List<Map<String, Object?>>> jlptTags_query = connection.query(
'JMdict_JLPTTag',
TanosJLPTTableNames.jlptTag,
where: 'entryId IN (${entryIds.join(',')})',
);
@@ -101,80 +102,80 @@ Future<LinearWordQueryData> fetchLinearWordQueryData(
final Future<List<Map<String, Object?>>> senseAntonyms_query =
connection.rawQuery("""
SELECT
JMdict_SenseAntonym.senseId,
JMdict_SenseAntonym.ambiguous,
JMdict_SenseAntonym.xrefEntryId,
JMdict_BaseAndFurigana.base,
JMdict_BaseAndFurigana.furigana
FROM JMdict_SenseAntonym
"${JMdictTableNames.senseAntonyms}".senseId,
"${JMdictTableNames.senseAntonyms}".ambiguous,
"${JMdictTableNames.senseAntonyms}".xrefEntryId,
"JMdict_BaseAndFurigana"."base",
"JMdict_BaseAndFurigana"."furigana"
FROM "${JMdictTableNames.senseAntonyms}"
JOIN "JMdict_BaseAndFurigana"
ON JMdict_SenseAntonym.xrefEntryId = JMdict_BaseAndFurigana.entryId
ON "${JMdictTableNames.senseAntonyms}"."xrefEntryId" = "JMdict_BaseAndFurigana"."entryId"
WHERE
senseId IN (${senseIds.join(',')})
"senseId" IN (${senseIds.join(',')})
AND COALESCE("JMdict_BaseAndFurigana"."kanjiOrderNum", 1)
+ "JMdict_BaseAndFurigana"."readingOrderNum"
= 2
ORDER BY
JMdict_SenseAntonym.senseId,
JMdict_SenseAntonym.xrefEntryId
"${JMdictTableNames.senseAntonyms}"."senseId",
"${JMdictTableNames.senseAntonyms}"."xrefEntryId"
""");
late final List<Map<String, Object?>> senseDialects;
final Future<List<Map<String, Object?>>> senseDialects_query =
connection.query(
'JMdict_SenseDialect',
JMdictTableNames.senseDialect,
where: 'senseId IN (${senseIds.join(',')})',
);
late final List<Map<String, Object?>> senseFields;
final Future<List<Map<String, Object?>>> senseFields_query = connection.query(
'JMdict_SenseField',
JMdictTableNames.senseField,
where: 'senseId IN (${senseIds.join(',')})',
);
late final List<Map<String, Object?>> senseGlossaries;
final Future<List<Map<String, Object?>>> senseGlossaries_query =
connection.query(
'JMdict_SenseGlossary',
JMdictTableNames.senseGlossary,
where: 'senseId IN (${senseIds.join(',')})',
);
late final List<Map<String, Object?>> senseInfos;
final Future<List<Map<String, Object?>>> senseInfos_query = connection.query(
'JMdict_SenseInfo',
JMdictTableNames.senseInfo,
where: 'senseId IN (${senseIds.join(',')})',
);
late final List<Map<String, Object?>> senseLanguageSources;
final Future<List<Map<String, Object?>>> senseLanguageSources_query =
connection.query(
'JMdict_SenseLanguageSource',
JMdictTableNames.senseLanguageSource,
where: 'senseId IN (${senseIds.join(',')})',
);
late final List<Map<String, Object?>> senseMiscs;
final Future<List<Map<String, Object?>>> senseMiscs_query = connection.query(
'JMdict_SenseMisc',
JMdictTableNames.senseMisc,
where: 'senseId IN (${senseIds.join(',')})',
);
late final List<Map<String, Object?>> sensePOSs;
final Future<List<Map<String, Object?>>> sensePOSs_query = connection.query(
'JMdict_SensePOS',
JMdictTableNames.sensePOS,
where: 'senseId IN (${senseIds.join(',')})',
);
late final List<Map<String, Object?>> senseRestrictedToKanjis;
final Future<List<Map<String, Object?>>> senseRestrictedToKanjis_query =
connection.query(
'JMdict_SenseRestrictedToKanji',
JMdictTableNames.senseRestrictedToKanji,
where: 'senseId IN (${senseIds.join(',')})',
);
late final List<Map<String, Object?>> senseRestrictedToReadings;
final Future<List<Map<String, Object?>>> senseRestrictedToReadings_query =
connection.query(
'JMdict_SenseRestrictedToReading',
JMdictTableNames.senseRestrictedToReading,
where: 'senseId IN (${senseIds.join(',')})',
);
@@ -182,22 +183,22 @@ Future<LinearWordQueryData> fetchLinearWordQueryData(
final Future<List<Map<String, Object?>>> senseSeeAlsos_query =
connection.rawQuery("""
SELECT
JMdict_SenseSeeAlso.senseId,
JMdict_SenseSeeAlso.ambiguous,
JMdict_SenseSeeAlso.xrefEntryId,
JMdict_BaseAndFurigana.base,
JMdict_BaseAndFurigana.furigana
FROM JMdict_SenseSeeAlso
"${JMdictTableNames.senseSeeAlso}"."senseId",
"${JMdictTableNames.senseSeeAlso}"."ambiguous",
"${JMdictTableNames.senseSeeAlso}"."xrefEntryId",
"JMdict_BaseAndFurigana"."base",
"JMdict_BaseAndFurigana"."furigana"
FROM "${JMdictTableNames.senseSeeAlso}"
JOIN "JMdict_BaseAndFurigana"
ON JMdict_SenseSeeAlso.xrefEntryId = JMdict_BaseAndFurigana.entryId
ON "${JMdictTableNames.senseSeeAlso}"."xrefEntryId" = "JMdict_BaseAndFurigana"."entryId"
WHERE
senseId IN (${senseIds.join(',')})
"senseId" IN (${senseIds.join(',')})
AND COALESCE("JMdict_BaseAndFurigana"."kanjiOrderNum", 1)
+ "JMdict_BaseAndFurigana"."readingOrderNum"
= 2
ORDER BY
JMdict_SenseSeeAlso.senseId,
JMdict_SenseSeeAlso.xrefEntryId
"${JMdictTableNames.senseSeeAlso}"."senseId",
"${JMdictTableNames.senseSeeAlso}"."xrefEntryId"
""");
late final List<Map<String, Object?>> exampleSentences;
@@ -219,14 +220,14 @@ Future<LinearWordQueryData> fetchLinearWordQueryData(
late final List<Map<String, Object?>> readingElementInfos;
final Future<List<Map<String, Object?>>> readingElementInfos_query =
connection.query(
'JMdict_ReadingElementInfo',
JMdictTableNames.readingInfo,
where: '(entryId, reading) IN (${readingIds.join(',')})',
);
late final List<Map<String, Object?>> readingElementRestrictions;
final Future<List<Map<String, Object?>>> readingElementRestrictions_query =
connection.query(
'JMdict_ReadingElementRestriction',
JMdictTableNames.readingRestriction,
where: '(entryId, reading) IN (${readingIds.join(',')})',
);
@@ -242,7 +243,7 @@ Future<LinearWordQueryData> fetchLinearWordQueryData(
late final List<Map<String, Object?>> kanjiElementInfos;
final Future<List<Map<String, Object?>>> kanjiElementInfos_query =
connection.query(
'JMdict_KanjiElementInfo',
JMdictTableNames.kanjiInfo,
where: '(entryId, reading) IN (${kanjiIds.join(',')})',
);