database: Fix search pagination.

* src/cuirass/database.scm (db-get-builds-by-search): Fix pagination.
This commit is contained in:
Mathieu Othacehe 2021-01-17 19:47:54 +01:00
parent e61e7a5ca4
commit dea5707750
No known key found for this signature in database
GPG Key ID: 8354763531769CA6
1 changed files with 8 additions and 6 deletions

View File

@ -843,7 +843,9 @@ WHERE build = " build-id))
FILTERS is an assoc list whose possible keys are the symbols query,
border-low-id, border-high-id, and nr."
(with-db-worker-thread db
(let* ((query (format #f "SELECT Builds.id, Builds.timestamp,
(let* ((query (format #f "
SELECT * FROM
(SELECT Builds.id, Builds.timestamp,
Builds.starttime,Builds.stoptime, Builds.log, Builds.status,
Builds.job_name, Builds.system, Builds.nix_name, Specifications.name
FROM Builds
@ -856,10 +858,10 @@ AND ((Builds.system = :system) OR :system IS NULL)
AND ((:borderlowid < Builds.id) OR :borderlowid IS NULL)
AND ((:borderhighid > Builds.id) OR :borderhighid IS NULL)
ORDER BY
CASE WHEN :borderlowid IS NULL THEN Builds.id
ELSE -Builds.id
END DESC
LIMIT :nr;"))
(CASE WHEN :borderlowid IS NULL THEN Builds.id
ELSE -Builds.id END) DESC
LIMIT :nr) Builds
ORDER BY Builds.id DESC;"))
(builds
(exec-query/bind-params
db
@ -873,7 +875,7 @@ LIMIT :nr;"))
(let loop ((builds builds)
(result '()))
(match builds
(() result)
(() (reverse result))
(((id timestamp starttime stoptime log status job-name
system nix-name specification)
. rest)