Fix related builds in select-derivations-in-revision
Rather than just counting builds where the derivation matches, select builds based on the derivation outputs, which accounts for different but equivalent derivations.
This commit is contained in:
parent
c8b93cb0d0
commit
544f122ff5
1 changed files with 18 additions and 11 deletions
|
|
@ -141,13 +141,25 @@ ORDER BY derivations.system DESC,
|
||||||
,@(if minimum-builds
|
,@(if minimum-builds
|
||||||
(list
|
(list
|
||||||
(string-append
|
(string-append
|
||||||
"(SELECT COUNT(DISTINCT id) FROM builds WHERE derivation_file_name = derivations.file_name) >= "
|
"
|
||||||
|
(
|
||||||
|
SELECT COUNT(*)
|
||||||
|
FROM builds
|
||||||
|
WHERE builds.derivation_output_details_set_id =
|
||||||
|
derivations_by_output_details_set.derivation_output_details_set_id
|
||||||
|
) >= "
|
||||||
(number->string minimum-builds)))
|
(number->string minimum-builds)))
|
||||||
'())
|
'())
|
||||||
,@(if maximum-builds
|
,@(if maximum-builds
|
||||||
(list
|
(list
|
||||||
(string-append
|
(string-append
|
||||||
"(SELECT COUNT(DISTINCT id) FROM builds WHERE derivation_file_name = derivations.file_name) <= "
|
"
|
||||||
|
(
|
||||||
|
SELECT COUNT(*)
|
||||||
|
FROM builds
|
||||||
|
WHERE builds.derivation_output_details_set_id =
|
||||||
|
derivations_by_output_details_set.derivation_output_details_set_id
|
||||||
|
) <= "
|
||||||
(number->string maximum-builds)))
|
(number->string maximum-builds)))
|
||||||
'()))
|
'()))
|
||||||
" AND "))
|
" AND "))
|
||||||
|
|
@ -176,15 +188,8 @@ SELECT derivations.file_name,
|
||||||
ORDER BY build_id, timestamp DESC
|
ORDER BY build_id, timestamp DESC
|
||||||
) AS latest_build_status
|
) AS latest_build_status
|
||||||
ON builds.id = latest_build_status.build_id
|
ON builds.id = latest_build_status.build_id
|
||||||
WHERE builds.derivation_file_name IN (
|
WHERE builds.derivation_output_details_set_id =
|
||||||
SELECT dervs_for_file_names.file_name
|
derivations_by_output_details_set.derivation_output_details_set_id
|
||||||
FROM derivations AS dervs_for_file_names
|
|
||||||
WHERE ARRAY[dervs_for_file_names.id] <@ (
|
|
||||||
SELECT equivalent_derivations.derivation_ids
|
|
||||||
FROM equivalent_derivations
|
|
||||||
WHERE ARRAY[derivations.id] <@ equivalent_derivations.derivation_ids
|
|
||||||
)
|
|
||||||
)
|
|
||||||
) AS builds,
|
) AS builds,
|
||||||
(
|
(
|
||||||
SELECT
|
SELECT
|
||||||
|
|
@ -219,6 +224,8 @@ SELECT derivations.file_name,
|
||||||
WHERE derivation_outputs.derivation_id = derivations.id
|
WHERE derivation_outputs.derivation_id = derivations.id
|
||||||
) AS outputs
|
) AS outputs
|
||||||
FROM derivations
|
FROM derivations
|
||||||
|
INNER JOIN derivations_by_output_details_set
|
||||||
|
ON derivations.id = derivations_by_output_details_set.derivation_id
|
||||||
INNER JOIN package_derivations
|
INNER JOIN package_derivations
|
||||||
ON derivations.id = package_derivations.derivation_id
|
ON derivations.id = package_derivations.derivation_id
|
||||||
INNER JOIN guix_revision_package_derivations
|
INNER JOIN guix_revision_package_derivations
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue