guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[no subject]


From: Ludovic Courtès
Date: Fri, 28 Jun 2024 05:21:24 -0400 (EDT)

branch: main
commit 5de7fa65a2186c424d32686e524de4825f3566cd
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Fri Jun 28 10:56:21 2024 +0200

    database: Optimize ‘db-get-evaluation-summary’.
    
    This is a followup to f60e73b7b1e906349d2355d37807514c6e667f0c: since
    there are possibly orders of magnitude more rows in ‘Jobs’ than in
    ‘Evaluations’, select from ‘Jobs’ first.
    
    * src/cuirass/database.scm (db-get-evaluation-summary): Select from
    ‘Jobs’ first and then from ‘Evaluations’.
---
 src/cuirass/database.scm | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/cuirass/database.scm b/src/cuirass/database.scm
index 1e1cbf0..b5c1285 100644
--- a/src/cuirass/database.scm
+++ b/src/cuirass/database.scm
@@ -1908,11 +1908,13 @@ SUM(CASE WHEN B.status > 0 THEN 1 ELSE 0 END) as failed,
 SUM(CASE WHEN B.status < 0 THEN 1 ELSE 0 END) as scheduled,
 SUM(CASE WHEN (B.status > 0 AND B.weather = " (build-weather new-failure) ")\
     THEN 1 ELSE 0 END) as newfailures
-FROM Evaluations
-LEFT JOIN Builds as B
-ON B.evaluation = Evaluations.id
-WHERE Evaluations.id = " id
-"GROUP BY Evaluations.id
+FROM Jobs
+LEFT JOIN Builds AS B
+ON B.evaluation = Jobs.evaluation
+LEFT JOIN Evaluations
+ON Jobs.evaluation = Evaluations.id
+WHERE Jobs.evaluation = " id "
+GROUP BY Evaluations.id
 ORDER BY Evaluations.id ASC;"))
       ((id status timestamp checkouttime evaltime
            total succeeded failed scheduled newfailures)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]