perf: harden download and persistence lifecycle

This commit is contained in:
zarzet
2026-08-28 12:51:03 +07:00
parent 51f61c9c95
commit 45d9bbd7b2
22 changed files with 1656 additions and 231 deletions
+30 -6
View File
@@ -365,9 +365,21 @@ extension _LibraryDbQueueSql on LibraryDatabase {
) {
final query = LibraryDatabase.normalizeLookupText(request.searchQuery);
if (query.isNotEmpty) {
final like = '%${_escapeLikePattern(query)}%';
where.add("h.search_text LIKE ? ESCAPE '\\'");
args.add(like);
final ftsQuery = sqlite.ftsPhraseSearchQuery(query);
if (HistoryDatabase.instance.searchFtsAvailable && ftsQuery != null) {
where.add('''
h.rowid IN (
SELECT rowid
FROM history_db.history_search_fts
WHERE history_search_fts MATCH ?
)
''');
args.add(ftsQuery);
} else {
final like = '%${_escapeLikePattern(query)}%';
where.add("h.search_text LIKE ? ESCAPE '\\'");
args.add(like);
}
}
_appendQueueCommonFilters(
where,
@@ -396,9 +408,21 @@ extension _LibraryDbQueueSql on LibraryDatabase {
) {
final query = LibraryDatabase.normalizeLookupText(request.searchQuery);
if (query.isNotEmpty) {
final like = '%${_escapeLikePattern(query)}%';
where.add("l.search_text LIKE ? ESCAPE '\\'");
args.add(like);
final ftsQuery = sqlite.ftsPhraseSearchQuery(query);
if (searchFtsAvailable && ftsQuery != null) {
where.add('''
l.rowid IN (
SELECT rowid
FROM library_search_fts
WHERE library_search_fts MATCH ?
)
''');
args.add(ftsQuery);
} else {
final like = '%${_escapeLikePattern(query)}%';
where.add("l.search_text LIKE ? ESCAPE '\\'");
args.add(like);
}
}
_appendQueueCommonFilters(
where,