diff options
author | Jakub Klinkovský <j.l.k@gmx.com> | 2020-09-05 22:15:22 +0200 |
---|---|---|
committer | Lukas Fleischer <lfleischer@archlinux.org> | 2021-02-20 17:25:21 +0100 |
commit | bc972089a158459005700a7eaa8cee3ba666e2d1 (patch) | |
tree | 9bac58da68eae83354c45bc72563267d76061f5d | |
parent | 3062a78a92d32144f423fdb460e96a309732d9d0 (diff) | |
download | aur-bc972089a158459005700a7eaa8cee3ba666e2d1.tar.gz aur-bc972089a158459005700a7eaa8cee3ba666e2d1.tar.xz |
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 9e30013aa4fc6ce3a3c9f6f83a6fe789c1fc2456
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 <lfleischer@archlinux.org>
-rw-r--r-- | web/lib/pkgfuncs.inc.php | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/web/lib/pkgfuncs.inc.php b/web/lib/pkgfuncs.inc.php index ac5c8cfe..eb3afab6 100644 --- a/web/lib/pkgfuncs.inc.php +++ b/web/lib/pkgfuncs.inc.php @@ -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; } /** |