word_search: fix count query
This commit is contained in:
@@ -73,7 +73,6 @@ String _filterFTSSensitiveCharacters(String word) {
|
||||
JOIN "JMdict_EntryScore" USING ("elementId")
|
||||
WHERE "${tableName}FTS"."reading" MATCH ? || '*'
|
||||
AND "JMdict_EntryScore"."type" = '${tableName == JMdictTableNames.kanjiElement ? 'k' : 'r'}'
|
||||
${!countOnly ? 'LIMIT ?' : ''}
|
||||
),
|
||||
non_fts_results AS (
|
||||
SELECT DISTINCT
|
||||
@@ -86,19 +85,16 @@ String _filterFTSSensitiveCharacters(String word) {
|
||||
WHERE "reading" LIKE '%' || ? || '%'
|
||||
AND "${tableName}"."entryId" NOT IN (SELECT "entryId" FROM "fts_results")
|
||||
AND "JMdict_EntryScore"."type" = '${tableName == JMdictTableNames.kanjiElement ? 'k' : 'r'}'
|
||||
${!countOnly ? 'LIMIT ?' : ''}
|
||||
)
|
||||
|
||||
SELECT ${countOnly ? 'COUNT("entryId") AS count' : '"entryId", MAX("score") AS "score"'}
|
||||
SELECT ${countOnly ? 'COUNT(DISTINCT "entryId") AS count' : '"entryId", MAX("score") AS "score"'}
|
||||
FROM (
|
||||
SELECT * FROM fts_results
|
||||
SELECT * FROM "fts_results"
|
||||
UNION
|
||||
SELECT * FROM non_fts_results
|
||||
SELECT * FROM "non_fts_results"
|
||||
)
|
||||
GROUP BY "entryId"
|
||||
ORDER BY
|
||||
"score" DESC,
|
||||
"entryId" ASC
|
||||
${!countOnly ? 'GROUP BY "entryId"' : ''}
|
||||
${!countOnly ? 'ORDER BY "score" DESC, "entryId" ASC' : ''}
|
||||
${pageSize != null ? 'LIMIT ?' : ''}
|
||||
${offset != null ? 'OFFSET ?' : ''}
|
||||
'''
|
||||
@@ -106,9 +102,7 @@ String _filterFTSSensitiveCharacters(String word) {
|
||||
[
|
||||
_filterFTSSensitiveCharacters(word),
|
||||
_filterFTSSensitiveCharacters(word),
|
||||
if (!countOnly) pageSize,
|
||||
_filterFTSSensitiveCharacters(word),
|
||||
if (!countOnly) pageSize,
|
||||
if (pageSize != null) pageSize,
|
||||
if (offset != null) offset,
|
||||
]
|
||||
@@ -241,13 +235,12 @@ Future<int> _queryEnglishCount(
|
||||
) async {
|
||||
final result = await connection.rawQuery(
|
||||
'''
|
||||
|
||||
SELECT
|
||||
COUNT(DISTINCT "${JMdictTableNames.sense}"."entryId") AS "count"
|
||||
FROM "${JMdictTableNames.senseGlossary}"
|
||||
JOIN "${JMdictTableNames.sense}" USING ("senseId")
|
||||
WHERE "${JMdictTableNames.senseGlossary}"."phrase" LIKE ?
|
||||
'''
|
||||
SELECT
|
||||
COUNT(DISTINCT "${JMdictTableNames.sense}"."entryId") AS "count"
|
||||
FROM "${JMdictTableNames.senseGlossary}"
|
||||
JOIN "${JMdictTableNames.sense}" USING ("senseId")
|
||||
WHERE "${JMdictTableNames.senseGlossary}"."phrase" LIKE ?
|
||||
'''
|
||||
.trim(),
|
||||
[
|
||||
'%$word%',
|
||||
|
||||
Reference in New Issue
Block a user