diff options
author | Mathieu Othacehe <othacehe@gnu.org> | 2020-12-02 17:14:01 +0100 |
---|---|---|
committer | Mathieu Othacehe <othacehe@gnu.org> | 2020-12-02 17:18:15 +0100 |
commit | e35eee6a80a3100aa42656b5f3a4721916e89b31 (patch) | |
tree | 3f078fbacbef1392d1d70774cfa97eb2d4dc5163 | |
parent | fd432b8e8f449d691773e96e7d90f44761e01aa3 (diff) | |
download | cuirass-e35eee6a80a3100aa42656b5f3a4721916e89b31.tar cuirass-e35eee6a80a3100aa42656b5f3a4721916e89b31.tar.gz |
database: Rewrite db-get-builds-max and db-get-builds-min.
* src/cuirass/database.scm (db-get-builds-min, db-get-builds-max): Rewrite SQL
queries without nesting.
-rw-r--r-- | src/cuirass/database.scm | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/src/cuirass/database.scm b/src/cuirass/database.scm index 9b17c67..adc046f 100644 --- a/src/cuirass/database.scm +++ b/src/cuirass/database.scm @@ -1312,18 +1312,16 @@ AND (:system IS NULL and STATUS." (with-db-worker-thread db (let ((rows (sqlite-exec db " -SELECT stoptime, MIN(rowid) FROM -(SELECT rowid, stoptime FROM Builds +SELECT stoptime, rowid FROM Builds WHERE evaluation=" eval " -AND stoptime = (SELECT MIN(stoptime) -FROM Builds -WHERE evaluation = " eval " AND (" status " IS NULL OR (" status " = 'pending' AND Builds.status < 0) OR (" status " = 'succeeded' AND Builds.status = 0) OR (" status " = 'failed' - AND Builds.status > 0))))"))) + AND Builds.status > 0)) +ORDER BY stoptime ASC, rowid ASC +LIMIT 1"))) (and=> (expect-one-row rows) vector->list)))) (define (db-get-builds-max eval status) @@ -1331,18 +1329,16 @@ AND (" status " IS NULL OR (" status " = 'pending' and STATUS." (with-db-worker-thread db (let ((rows (sqlite-exec db " -SELECT stoptime, MAX(rowid) FROM -(SELECT rowid, stoptime FROM Builds -WHERE evaluation=" eval " AND -stoptime = (SELECT MAX(stoptime) -FROM Builds -WHERE evaluation = " eval " +SELECT stoptime, rowid FROM Builds +WHERE evaluation=" eval " AND (" status " IS NULL OR (" status " = 'pending' AND Builds.status < 0) OR (" status " = 'succeeded' AND Builds.status = 0) OR (" status " = 'failed' - AND Builds.status > 0))))"))) + AND Builds.status > 0)) +ORDER BY stoptime DESC, rowid DESC +LIMIT 1"))) (and=> (expect-one-row rows) vector->list)))) (define (db-get-evaluation-specification eval) |