Improve the query in select-derivations-and-build-status

Fix handling derivations which target multiple systems (somehow?).
This commit is contained in:
Christopher Baines 2019-03-24 10:50:48 +00:00
parent 5d0dcea3e4
commit 5be4ebca0c

View file

@ -499,23 +499,24 @@ ORDER BY derivations.system DESC,
(define query (define query
(string-append (string-append
"SELECT derivations.file_name, derivations.system, (" "
" SELECT DISTINCT package_derivations.target" SELECT
" FROM package_derivations" derivations.file_name,
" WHERE derivations.id = package_derivations.derivation_id" derivations.system,
") AS target, " package_derivations.target,
"latest_build_status.status " latest_build_status.status
"FROM derivations " FROM derivations
"INNER JOIN package_derivations" INNER JOIN package_derivations
" ON derivations.id = package_derivations.derivation_id " ON derivations.id = package_derivations.derivation_id
"LEFT OUTER JOIN builds ON derivations.id = builds.derivation_id " LEFT OUTER JOIN builds
"LEFT OUTER JOIN " ON derivations.id = builds.derivation_id
"(SELECT DISTINCT ON (internal_build_id) * " LEFT OUTER JOIN (
"FROM build_status " SELECT DISTINCT ON (internal_build_id) *
"ORDER BY internal_build_id, status_fetched_at DESC" FROM build_status
") AS latest_build_status " ORDER BY internal_build_id, status_fetched_at DESC
"ON builds.internal_id = latest_build_status.internal_build_id " ) AS latest_build_status
"WHERE " criteria ";")) ON builds.internal_id = latest_build_status.internal_build_id
WHERE " criteria ";"))
(exec-query conn query)) (exec-query conn query))