Commit 8b2b0fe2 authored by Jakub Klinkovský's avatar Jakub Klinkovský Committed by Lukas Fleischer
Browse files

Fix WHERE clause for keyword search queries with empty keywords

When the keyword parameter is empty, the AND clause has to be omitted,
otherwise we get an SQL syntax error:

... WHERE PackageBases.PackagerUID IS NOT NULL AND () ...

This got broken in commit 9e30013a


Author: Kevin Morris <kevr.gtalk@gmail.com>
Date:   Sun Jul 5 18:19:06 2020 -0700

Support conjunctive keyword search in RPC interface
Signed-off-by: Lukas Fleischer's avatarLukas Fleischer <lfleischer@archlinux.org>
parent b0ff67e1
Pipeline #2080 passed with stage
in 55 seconds
......@@ -697,9 +697,7 @@ function pkg_search_page($params, $show_headers=true, $SID="") {
}
elseif (isset($params["SeB"]) && $params["SeB"] == "k") {
/* Search by name. */
$q_where .= "AND (";
$q_where .= construct_keyword_search($dbh, $params['K'], false, true);
$q_where .= ") ";
}
elseif (isset($params["SeB"]) && $params["SeB"] == "N") {
/* Search by name (exact match). */
......@@ -711,9 +709,7 @@ function pkg_search_page($params, $show_headers=true, $SID="") {
}
else {
/* Keyword search (default). */
$q_where .= "AND (";
$q_where .= construct_keyword_search($dbh, $params['K'], true, true);
$q_where .= ") ";
}
}
......@@ -885,7 +881,11 @@ function construct_keyword_search($dbh, $keywords, $namedesc, $keyword=false) {
$op = "AND ";
}
return $q_keywords;
if (!empty($q_keywords)) {
$where_part = "AND (" . $q_keywords . ") ";
}
return $where_part;
}
/**
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment