Exclude derviations with unchanged outputs from the comparison page

As these aren't useful to look at. This should probably default to #f and be a
parameter.
This commit is contained in:
Christopher Baines 2021-02-08 22:04:26 +00:00
parent f2d98b626d
commit 110a3b7ce5

View file

@ -253,6 +253,7 @@ GROUP BY derivation_source_files.store_path"))
(systems #f)
(targets #f)
(include-builds? #t)
(exclude-unchanged-outputs? #t)
;; Build changes are (symbols):
;; broken, fixed, still-failing,
;; still-working, unknown
@ -285,7 +286,7 @@ GROUP BY derivation_source_files.store_path"))
(define query
(string-append "
WITH base_packages AS (
SELECT packages.*, derivations.file_name,
SELECT packages.*, derivations.id AS derivation_id, derivations.file_name,
package_derivations.system, package_derivations.target,
derivations_by_output_details_set.derivation_output_details_set_id
FROM packages
@ -301,7 +302,7 @@ WITH base_packages AS (
WHERE revision_id = $1
)" extra-constraints "
), target_packages AS (
SELECT packages.*, derivations.file_name,
SELECT packages.*, derivations.id AS derivation_id, derivations.file_name,
package_derivations.system, package_derivations.target,
derivations_by_output_details_set.derivation_output_details_set_id
FROM packages
@ -383,6 +384,22 @@ WHERE
"
AND coalesce(base_packages.name, target_packages.name) > $3"
"")
(if exclude-unchanged-outputs?
"
AND NOT (
(
SELECT array_agg(id ORDER BY id)
FROM derivation_outputs
WHERE derivation_outputs.derivation_id = base_packages.derivation_id
)
&&
(
SELECT array_agg(id ORDER BY id)
FROM derivation_outputs
WHERE derivation_outputs.derivation_id = target_packages.derivation_id
)
)"
"")
(cond
((eq? build-change #f) "")
((eq? build-change 'unknown)