From a81963181aaf101ce3ca153b34443f5d17f9a4dc Mon Sep 17 00:00:00 2001 From: Albert S Date: Sat, 20 Aug 2022 11:24:08 +0200 Subject: [PATCH] RevisionDaoSqlite: Fix cases where we got pageid instead of the page name --- database/revisiondaosqlite.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/database/revisiondaosqlite.cpp b/database/revisiondaosqlite.cpp index 58994d8..7c9e0f1 100644 --- a/database/revisiondaosqlite.cpp +++ b/database/revisiondaosqlite.cpp @@ -129,9 +129,8 @@ std::optional RevisionDaoSqlite::getCurrentForPage(std::string pagenam try { auto query = *db << "SELECT (SELECT username FROM user WHERE id = author), comment, content, " - "strftime('%s',creationtime), page, revisionid FROM revision WHERE page = (SELECT id FROM " - "page WHERE name = ? ) AND revisionid = (SELECT lastrevision FROM page WHERE name = ?)"; - query << pagename << pagename; + "strftime('%s',creationtime), page.name, revisionid FROM revision INNER JOIN page ON revision.page = page.id WHERE page.name = ? AND page.lastrevision = revision.revisionid"; + query << pagename; query >> std::tie(result.author, result.comment, result.content, result.timestamp, result.page, result.revision); } @@ -155,7 +154,7 @@ std::optional RevisionDaoSqlite::getRevisionForPage(std::string pagena auto query = *db << "SELECT (SELECT username FROM user WHERE id = author), comment, content, strftime('%s',creationtime), " - "page, revisionid FROM revision WHERE page = (SELECT id FROM page WHERE name = ? ) AND revisionid = ?"; + "page.name, revisionid FROM revision INNER JOIN page ON revision.page = page.id WHERE page.name = ? AND revisionid = ? "; query << pagename << revision; query >> std::tie(result.author, result.comment, result.content, result.timestamp, result.page, result.revision);