From 110a3b7ce5fdbf97363dbc4e283c3eb8f0a3d41c Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 8 Feb 2021 22:04:26 +0000 Subject: [PATCH] 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. --- guix-data-service/comparison.scm | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/guix-data-service/comparison.scm b/guix-data-service/comparison.scm index 92750db..4a6805a 100644 --- a/guix-data-service/comparison.scm +++ b/guix-data-service/comparison.scm @@ -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)