From 1da8344295da5159a52281728b420679f52103a4 Mon Sep 17 00:00:00 2001 From: Albert S Date: Thu, 28 Jul 2022 13:58:25 +0200 Subject: [PATCH] shared: Adjust queries to db revision 2 --- shared/sqlitedbservice.cpp | 7 +++++-- shared/sqlitesearch.cpp | 6 +++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/shared/sqlitedbservice.cpp b/shared/sqlitedbservice.cpp index 3e5df28..f63d5b8 100644 --- a/shared/sqlitedbservice.cpp +++ b/shared/sqlitedbservice.cpp @@ -151,11 +151,14 @@ SaveFileResult SqliteDbService::saveFile(QFileInfo fileInfo, QVector & int lastid = inserterQuery.lastInsertId().toInt(); for(const PageData &data : pageData) { + QSqlQuery ftsQuery(db); + ftsQuery.prepare("INSERT INTO fts(content) VALUES(?)"); + ftsQuery.addBindValue(data.content); + ftsQuery.exec(); QSqlQuery contentQuery(db); - contentQuery.prepare("INSERT INTO content(fileid, page, content) VALUES(?, ?, ?)"); + contentQuery.prepare("INSERT INTO content(fileid, page, ftsid) VALUES(?, ?, last_insert_rowid())"); contentQuery.addBindValue(lastid); contentQuery.addBindValue(data.pagenumber); - contentQuery.addBindValue(data.content); if(!contentQuery.exec()) { db.rollback(); diff --git a/shared/sqlitesearch.cpp b/shared/sqlitesearch.cpp index bcfe8a0..a779f2e 100644 --- a/shared/sqlitesearch.cpp +++ b/shared/sqlitesearch.cpp @@ -115,7 +115,7 @@ QPair> SqliteSearch::createSql(const Token &token) } if(token.type == FILTER_CONTENT_CONTAINS) { - return {" content.id IN (SELECT content_fts.ROWID FROM content_fts WHERE content_fts.content MATCH ? ORDER BY " + return {" content.id IN (SELECT fts.ROWID FROM fts WHERE fts.content MATCH ? ORDER BY " "rank) ", {value}}; } @@ -141,10 +141,10 @@ QSqlQuery SqliteSearch::makeSqlQuery(const LooqsQuery &query) { if(!ftsAlreadyJoined) { - joinSql += " INNER JOIN content_fts ON content.id = content_fts.ROWID "; + joinSql += " INNER JOIN fts ON content.ftsid = fts.ROWID "; ftsAlreadyJoined = true; } - whereSql += " content_fts.content MATCH ? "; + whereSql += " fts.content MATCH ? "; bindValues.append(token.value); } else