Switch queries across to use latest_build_status

This commit is contained in:
Christopher Baines 2020-10-13 19:32:42 +01:00
parent 83884ed2ea
commit e273e22042
6 changed files with 16 additions and 71 deletions

View file

@ -462,12 +462,8 @@ SELECT builds.id, derivations.file_name
FROM derivations FROM derivations
INNER JOIN builds INNER JOIN builds
ON derivations.file_name = builds.derivation_file_name ON derivations.file_name = builds.derivation_file_name
LEFT JOIN ( LEFT JOIN latest_build_status
SELECT DISTINCT ON (build_id) * ON latest_build_status.build_id = builds.id
FROM build_status
ORDER BY build_id, id DESC
) AS latest_build_status
ON builds.id = latest_build_status.build_id
WHERE builds.build_server_id = $1 AND WHERE builds.build_server_id = $1 AND
latest_build_status.status IN ( latest_build_status.status IN (
'scheduled', 'started' 'scheduled', 'started'

View file

@ -79,12 +79,7 @@ LEFT JOIN builds
ON builds.derivation_output_details_set_id = ON builds.derivation_output_details_set_id =
derivation_output_details_sets.id AND derivation_output_details_sets.id AND
builds.build_server_id = build_servers.id builds.build_server_id = build_servers.id
LEFT JOIN LEFT JOIN latest_build_status
(
SELECT DISTINCT ON (build_id) *
FROM build_status
ORDER BY build_id, id DESC
) AS latest_build_status
ON builds.id = latest_build_status.build_id ON builds.id = latest_build_status.build_id
" "
(if (null? criteria) (if (null? criteria)
@ -168,12 +163,7 @@ INNER JOIN guix_revisions
ON guix_revision_package_derivations.revision_id = guix_revisions.id" ON guix_revision_package_derivations.revision_id = guix_revisions.id"
"") "")
" "
INNER JOIN INNER JOIN latest_build_status
(
SELECT DISTINCT ON (build_id) *
FROM build_status
ORDER BY build_id, id DESC
) AS latest_build_status
ON latest_build_status.build_id = builds.id ON latest_build_status.build_id = builds.id
" "
(if (null? where-conditions) (if (null? where-conditions)
@ -237,12 +227,7 @@ SELECT build_servers.id,
latest_build_status.status latest_build_status.status
FROM builds FROM builds
INNER JOIN build_servers ON build_servers.id = builds.build_server_id INNER JOIN build_servers ON build_servers.id = builds.build_server_id
INNER JOIN INNER JOIN latest_build_status
(
SELECT DISTINCT ON (build_id) *
FROM build_status
ORDER BY build_id, id DESC
) AS latest_build_status
ON latest_build_status.build_id = builds.id ON latest_build_status.build_id = builds.id
INNER JOIN derivation_output_details_sets INNER JOIN derivation_output_details_sets
ON builds.derivation_output_details_set_id = ON builds.derivation_output_details_set_id =
@ -362,11 +347,7 @@ LEFT OUTER JOIN builds
ON derivations_by_output_details_set.derivation_output_details_set_id = ON derivations_by_output_details_set.derivation_output_details_set_id =
builds.derivation_output_details_set_id builds.derivation_output_details_set_id
AND builds.build_server_id = $2 AND builds.build_server_id = $2
LEFT OUTER JOIN ( LEFT OUTER JOIN latest_build_status
SELECT DISTINCT ON (build_id) *
FROM build_status
ORDER BY build_id, id DESC
) AS latest_build_status
ON builds.id = latest_build_status.build_id ON builds.id = latest_build_status.build_id
WHERE latest_build_status.status = 'failed' WHERE latest_build_status.status = 'failed'
AND NOT EXISTS ( AND NOT EXISTS (

View file

@ -76,11 +76,7 @@ INNER JOIN derivations_by_output_details_set
LEFT OUTER JOIN builds LEFT OUTER JOIN builds
ON derivations_by_output_details_set.derivation_output_details_set_id = ON derivations_by_output_details_set.derivation_output_details_set_id =
builds.derivation_output_details_set_id builds.derivation_output_details_set_id
LEFT OUTER JOIN ( LEFT OUTER JOIN latest_build_status
SELECT DISTINCT ON (build_id) *
FROM build_status
ORDER BY build_id, id DESC
) AS latest_build_status
ON builds.id = latest_build_status.build_id ON builds.id = latest_build_status.build_id
INNER JOIN guix_revisions INNER JOIN guix_revisions
ON guix_revisions.id = channel_instances.guix_revision_id ON guix_revisions.id = channel_instances.guix_revision_id

View file

@ -157,11 +157,7 @@ LEFT OUTER JOIN builds
builds.derivation_output_details_set_id builds.derivation_output_details_set_id
LEFT OUTER JOIN build_servers LEFT OUTER JOIN build_servers
ON builds.build_server_id = build_servers.id ON builds.build_server_id = build_servers.id
LEFT OUTER JOIN ( LEFT OUTER JOIN latest_build_status
SELECT DISTINCT ON (build_id) *
FROM build_status
ORDER BY build_id, id DESC
) AS latest_build_status
ON builds.id = latest_build_status.build_id ON builds.id = latest_build_status.build_id
WHERE guix_revisions.commit = $1 WHERE guix_revisions.commit = $1
AND packages.name = $2 AND packages.name = $2
@ -261,11 +257,7 @@ SELECT derivations.file_name,
ORDER BY latest_build_status.timestamp ORDER BY latest_build_status.timestamp
) )
FROM builds FROM builds
INNER JOIN ( INNER JOIN latest_build_status
SELECT DISTINCT ON (build_id) *
FROM build_status
ORDER BY build_id, id DESC
) AS latest_build_status
ON builds.id = latest_build_status.build_id ON builds.id = latest_build_status.build_id
WHERE builds.derivation_output_details_set_id = WHERE builds.derivation_output_details_set_id =
derivations_by_output_details_set.derivation_output_details_set_id derivations_by_output_details_set.derivation_output_details_set_id
@ -390,11 +382,7 @@ SELECT derivations.file_name,
ORDER BY latest_build_status.timestamp ORDER BY latest_build_status.timestamp
) )
FROM builds FROM builds
INNER JOIN ( INNER JOIN latest_build_status
SELECT DISTINCT ON (build_id) *
FROM build_status
ORDER BY build_id, id DESC
) AS latest_build_status
ON builds.id = latest_build_status.build_id ON builds.id = latest_build_status.build_id
WHERE builds.derivation_output_details_set_id = WHERE builds.derivation_output_details_set_id =
derivations_by_output_details_set.derivation_output_details_set_id derivations_by_output_details_set.derivation_output_details_set_id
@ -1445,11 +1433,7 @@ INNER JOIN derivations_by_output_details_set
LEFT OUTER JOIN builds LEFT OUTER JOIN builds
ON derivations.derivation_output_details_set_id = ON derivations.derivation_output_details_set_id =
builds.derivation_output_details_set_id builds.derivation_output_details_set_id
LEFT OUTER JOIN ( LEFT OUTER JOIN latest_build_status
SELECT DISTINCT ON (build_id) *
FROM build_status
ORDER BY build_id, id DESC
) AS latest_build_status
ON builds.id = latest_build_status.build_id ON builds.id = latest_build_status.build_id
WHERE " criteria ";")) WHERE " criteria ";"))

View file

@ -361,11 +361,7 @@ INNER JOIN derivations_by_output_details_set
LEFT OUTER JOIN builds LEFT OUTER JOIN builds
ON derivations_by_output_details_set.derivation_output_details_set_id = ON derivations_by_output_details_set.derivation_output_details_set_id =
builds.derivation_output_details_set_id builds.derivation_output_details_set_id
LEFT OUTER JOIN ( LEFT OUTER JOIN latest_build_status
SELECT DISTINCT ON (build_id) *
FROM build_status
ORDER BY build_id, id DESC
) AS latest_build_status
ON builds.id = latest_build_status.build_id ON builds.id = latest_build_status.build_id
INNER JOIN guix_revisions AS first_guix_revisions INNER JOIN guix_revisions AS first_guix_revisions
ON first_guix_revision_id = first_guix_revisions.id ON first_guix_revision_id = first_guix_revisions.id
@ -493,11 +489,7 @@ FROM (
LEFT OUTER JOIN builds LEFT OUTER JOIN builds
ON data2.derivation_output_details_set_id = ON data2.derivation_output_details_set_id =
builds.derivation_output_details_set_id builds.derivation_output_details_set_id
LEFT OUTER JOIN ( LEFT OUTER JOIN latest_build_status
SELECT DISTINCT ON (build_id) *
FROM build_status
ORDER BY build_id, id DESC
) AS latest_build_status
ON builds.id = latest_build_status.build_id ON builds.id = latest_build_status.build_id
GROUP BY 1, 2, 3, 4, 5, 6 GROUP BY 1, 2, 3, 4, 5, 6
ORDER BY first_datetime DESC, package_version DESC") ORDER BY first_datetime DESC, package_version DESC")

View file

@ -108,11 +108,7 @@ INNER JOIN derivations_by_output_details_set
LEFT OUTER JOIN builds LEFT OUTER JOIN builds
ON derivations_by_output_details_set.derivation_output_details_set_id = ON derivations_by_output_details_set.derivation_output_details_set_id =
builds.derivation_output_details_set_id builds.derivation_output_details_set_id
LEFT OUTER JOIN ( LEFT OUTER JOIN latest_build_status
SELECT DISTINCT ON (build_id) *
FROM build_status
ORDER BY build_id, id DESC
) AS latest_build_status
ON builds.id = latest_build_status.build_id ON builds.id = latest_build_status.build_id
INNER JOIN guix_revisions INNER JOIN guix_revisions
ON guix_revisions.id = guix_revision_system_test_derivations.guix_revision_id ON guix_revisions.id = guix_revision_system_test_derivations.guix_revision_id