From b0dbd88293125614f5e8c084b208b7fd34e789f3 Mon Sep 17 00:00:00 2001 From: Albert S Date: Sun, 7 Mar 2021 22:48:44 +0100 Subject: [PATCH] shared: qssquery: Fix sqlerror if sort condition comes last If we had something like c:(test) sort:(mtime, desc), then we would run into an sql error eventually, since we would have added an implicit AND token before the sort condition. This is wrong, as a sort is not a filter. So, as a quick hack to fix this, just remove a preceeding boolean (as dirty as it may be, but it does the job for now). --- shared/qssquery.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/shared/qssquery.cpp b/shared/qssquery.cpp index 132e238..a8e17f8 100644 --- a/shared/qssquery.cpp +++ b/shared/qssquery.cpp @@ -281,6 +281,11 @@ QSSQuery QSSQuery::build(QString expression) { throw QSSGeneralException("Two sort statements are illegal"); } + //TODO: hack, since we are not a "filter", we must remove a preceeding (implicit) boolean + if(result.tokens.last().type & BOOL == BOOL) + { + result.tokens.pop_back(); + } result.sortConditions = createSortConditions(value); continue; }