2
0
Fork 0
mirror of git://git.savannah.gnu.org/guix/data-service.git synced 2023-12-14 03:23:03 +01:00

Update most-recent-commits-for-branch to handle data availability

This commit is contained in:
Christopher Baines 2021-02-03 12:55:23 +00:00
parent 570c667222
commit 9a9d156366
2 changed files with 33 additions and 19 deletions

View file

@ -73,19 +73,30 @@ WHERE git_branches.commit = $1")
before-date) before-date)
(define query (define query
(string-append (string-append
"SELECT git_branches.commit, datetime, " "
"(guix_revisions.id IS NOT NULL) as guix_revision_exists, " SELECT git_branches.commit,
"( datetime,
SELECT json_agg(event) (
FROM load_new_guix_revision_job_events load_new_guix_revision_job_events.event IS NOT NULL
INNER JOIN load_new_guix_revision_jobs ON ) as data_available,
load_new_guix_revision_jobs.id = load_new_guix_revision_job_events.job_id (
WHERE load_new_guix_revision_jobs.commit = git_branches.commit AND SELECT json_agg(event)
git_branches.git_repository_id = load_new_guix_revision_jobs.git_repository_id FROM load_new_guix_revision_job_events
) AS job_events " INNER JOIN load_new_guix_revision_jobs ON
"FROM git_branches " load_new_guix_revision_jobs.id = load_new_guix_revision_job_events.job_id
"LEFT OUTER JOIN guix_revisions ON git_branches.commit = guix_revisions.commit " WHERE load_new_guix_revision_jobs.commit = git_branches.commit AND
"WHERE name = $1 AND git_branches.git_repository_id = $2" git_branches.git_repository_id = load_new_guix_revision_jobs.git_repository_id
) AS job_events
FROM git_branches
LEFT OUTER JOIN guix_revisions
ON git_branches.commit = guix_revisions.commit
LEFT JOIN load_new_guix_revision_jobs
ON load_new_guix_revision_jobs.commit = guix_revisions.commit
LEFT JOIN load_new_guix_revision_job_events
ON job_id = load_new_guix_revision_jobs.id
AND load_new_guix_revision_job_events.event = 'success'
WHERE name = $1
AND git_branches.git_repository_id = $2"
(if after-date (if after-date
(simple-format #f " AND datetime > '~A'" (simple-format #f " AND datetime > '~A'"
(date->string after-date "~1 ~3")) (date->string after-date "~1 ~3"))
@ -94,17 +105,20 @@ WHERE git_branches.commit = $1")
(simple-format #f " AND datetime < '~A'" (simple-format #f " AND datetime < '~A'"
(date->string before-date "~1 ~3")) (date->string before-date "~1 ~3"))
"") "")
"ORDER BY datetime DESC" "
ORDER BY datetime DESC"
(if limit (if limit
(simple-format #f " LIMIT ~A;" limit) (string-append
"
LIMIT " (number->string limit))
""))) "")))
(map (map
(match-lambda (match-lambda
((commit datetime guix_revision_exists job_events) ((commit datetime data_available job_events)
(list commit (list commit
datetime datetime
(string=? guix_revision_exists "t") (string=? data_available "t")
(if (or (and (string? job_events) (string-null? job_events)) (if (or (and (string? job_events) (string-null? job_events))
(eq? #f job_events)) (eq? #f job_events))
'() '()

View file

@ -139,10 +139,10 @@
`((revisions `((revisions
. ,(list->vector . ,(list->vector
(map (match-lambda (map (match-lambda
((commit-hash date revision-exists? _) ((commit-hash date data-available? _)
`((date . ,date) `((date . ,date)
(commit-hash . ,commit-hash) (commit-hash . ,commit-hash)
(data_available . ,revision-exists?)))) (data_available . ,data-available?))))
revisions)))))) revisions))))))
(else (else
(render-html (render-html