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