From 0bacaf2a3e6e77e964131b4bbc8a50b5a8ba1c42 Mon Sep 17 00:00:00 2001 From: Oliver Giles Date: Sun, 30 Sep 2018 13:08:34 +0300 Subject: [PATCH] fix ambiguous SQL query Query did not always return the last run as required due to implementation-defined behaviour of mixing aggregate and non-aggregate columns with group-by --- src/laminar.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/laminar.cpp b/src/laminar.cpp index 941b270..5d39f41 100644 --- a/src/laminar.cpp +++ b/src/laminar.cpp @@ -282,7 +282,7 @@ void Laminar::sendStatus(LaminarClient* client) { } else if(client->scope.type == MonitorScope::ALL) { j.startArray("jobs"); - db->stmt("SELECT name,number,startedAt,completedAt,result FROM builds GROUP BY name ORDER BY number DESC") + db->stmt("SELECT name,number,startedAt,completedAt,result FROM builds b JOIN (SELECT name n,MAX(number) l FROM builds GROUP BY n) q ON b.name = q.n AND b.number = q.l") .fetch([&](str name,uint number, time_t started, time_t completed, int result){ j.StartObject(); j.set("name", name);