From dea570775064573881dbec0c849fd50ff907c31a Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Sun, 17 Jan 2021 19:47:54 +0100 Subject: [PATCH] database: Fix search pagination. * src/cuirass/database.scm (db-get-builds-by-search): Fix pagination. --- src/cuirass/database.scm | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/cuirass/database.scm b/src/cuirass/database.scm index 6f76100..0cc90e6 100644 --- a/src/cuirass/database.scm +++ b/src/cuirass/database.scm @@ -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)