Continue improving pages and linking things together

This commit is contained in:
Christopher Baines 2019-03-07 23:50:51 +00:00
parent 0380c84a67
commit a1e481cc4d
Signed by: cbaines
GPG key ID: 5E28A33B0B84F577
4 changed files with 160 additions and 13 deletions

View file

@ -2,6 +2,7 @@
#:use-module (squee)
#:export (select-build-stats
select-builds-with-context
select-builds-with-context-by-derivation-id
select-build-by-build-server-and-id
insert-build
ensure-build-exists))
@ -42,6 +43,25 @@
(exec-query conn query))
(define (select-builds-with-context-by-derivation-id conn derivation-id)
(define query
(string-append
"SELECT builds.id, build_servers.url, "
"latest_build_status.status_fetched_at, latest_build_status.starttime, "
"latest_build_status.stoptime, latest_build_status.status "
"FROM builds "
"INNER JOIN build_servers ON build_servers.id = builds.build_server_id "
"INNER JOIN "
"(SELECT DISTINCT ON (internal_build_id) * "
"FROM build_status "
"ORDER BY internal_build_id, status_fetched_at DESC"
") AS latest_build_status "
"ON latest_build_status.internal_build_id = builds.internal_id "
"WHERE builds.derivation_id = $1 "
"ORDER BY latest_build_status.status_fetched_at DESC "))
(exec-query conn query (list derivation-id)))
(define (select-build-by-build-server-and-id
conn build-server-id id)
(exec-query conn

View file

@ -9,6 +9,8 @@
#:use-module (guix-data-service model utils)
#:export (select-derivation-by-file-name
select-derivation-outputs-by-derivation-id
select-derivation-by-output-filename
select-derivations-using-output
select-derivation-inputs-by-derivation-id
select-existing-derivations
select-derivations-by-id
@ -34,6 +36,32 @@
",")
")"))
(define (select-derivation-by-output-filename conn filename)
(define query
(string-append
"SELECT derivations.file_name, derivation_outputs.id "
"FROM derivation_output_details "
"INNER JOIN derivation_outputs"
" ON derivation_output_details.id = derivation_outputs.derivation_output_details_id "
"INNER JOIN derivations"
" ON derivation_outputs.derivation_id = derivations.id "
"WHERE derivation_output_details.path = $1"))
(exec-query conn query (list filename)))
(define (select-derivations-using-output conn output-id)
(define query
(string-append
"SELECT derivations.file_name "
"FROM derivations "
"INNER JOIN derivation_inputs"
" ON derivation_inputs.derivation_id = derivations.id "
"WHERE derivation_output_id = $1 "
"ORDER BY derivations.file_name "
"LIMIT 100 "))
(exec-query conn query (list output-id)))
(define (insert-derivation-outputs conn
derivation-id
names-and-derivation-outputs)