From 54244e6e975add729eba150bbdc459198588b122 Mon Sep 17 00:00:00 2001
From: Mathieu Othacehe <othacehe@gnu.org>
Date: Mon, 1 Feb 2021 12:30:38 +0100
Subject: [PATCH] database: Fix "db-update-build-status!".

* src/cuirass/database.scm (db-update-build-status): Only consider evaluations
that happened before the current one. This is useful when updating the build
status of old evaluations.
---
 src/cuirass/database.scm | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/cuirass/database.scm b/src/cuirass/database.scm
index 257fe7e3..f89e6340 100644
--- a/src/cuirass/database.scm
+++ b/src/cuirass/database.scm
@@ -797,14 +797,16 @@ log file for DRV."
 UPDATE Builds SET stoptime =" now
 ", status =" status
 ", last_status =
-(SELECT Builds.status FROM (SELECT job_name, specification FROM Builds
+(SELECT Builds.status FROM
+(SELECT evaluation, job_name, specification FROM Builds
 INNER JOIN Evaluations ON Builds.evaluation = Evaluations.id WHERE
 derivation = " drv ") AS cur, Builds INNER JOIN
 Evaluations ON Builds.evaluation = Evaluations.id
 WHERE cur.job_name = Builds.job_name AND
 cur.specification = Evaluations.specification AND
+Builds.evaluation < cur.evaluation AND
 Builds.status >= 0
-ORDER BY evaluation DESC LIMIT 1)
+ORDER BY Builds.evaluation DESC LIMIT 1)
 WHERE derivation =" drv
 " AND status != " status ";")))
             (when (positive? rows)
-- 
GitLab