aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service/model/derivation.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2019-03-06 22:58:05 +0000
committerChristopher Baines <mail@cbaines.net>2019-03-06 22:58:05 +0000
commite656b0967be7fa9753edd498ce225b74073b87af (patch)
tree2e7aa1276de12f012d5442e317dae425a0a559a2 /guix-data-service/model/derivation.scm
parent7a90afe980c39efcdb3efcafd031b6b1bdcd1216 (diff)
downloaddata-service-e656b0967be7fa9753edd498ce225b74073b87af.tar
data-service-e656b0967be7fa9753edd498ce225b74073b87af.tar.gz
Include the status of derivations
On the comparison page.
Diffstat (limited to 'guix-data-service/model/derivation.scm')
-rw-r--r--guix-data-service/model/derivation.scm22
1 files changed, 22 insertions, 0 deletions
diff --git a/guix-data-service/model/derivation.scm b/guix-data-service/model/derivation.scm
index ef39251..a83bf97 100644
--- a/guix-data-service/model/derivation.scm
+++ b/guix-data-service/model/derivation.scm
@@ -9,6 +9,7 @@
#:use-module (guix-data-service model utils)
#:export (select-existing-derivations
select-derivations-by-id
+ select-derivations-and-build-status-by-id
insert-into-derivations
derivations->derivation-ids))
@@ -289,6 +290,27 @@
(exec-query conn query))
+(define (select-derivations-and-build-status-by-id conn ids)
+ (define query
+ (string-append
+ "SELECT derivations.id, derivations.file_name, latest_build_status.status "
+ "FROM derivations "
+ "LEFT OUTER JOIN builds ON derivations.id = builds.derivation_id "
+ "LEFT OUTER JOIN "
+ "(SELECT DISTINCT ON (internal_build_id) * "
+ "FROM build_status "
+ "ORDER BY internal_build_id, status_fetched_at DESC"
+ ") AS latest_build_status "
+ "ON builds.internal_id = latest_build_status.internal_build_id "
+ "WHERE derivations.id IN "
+ "(" (string-join (map (lambda (id)
+ (simple-format #f "'~A'" id))
+ ids)
+ ",")
+ ");"))
+
+ (exec-query conn query))
+
(define (derivations->derivation-ids conn derivations)
(define (ensure-input-derivations-exist)
(let* ((missing-derivation-file-names (map derivation-file-name