aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2021-02-08 22:04:26 +0000
committerChristopher Baines <mail@cbaines.net>2021-02-08 22:04:26 +0000
commit110a3b7ce5fdbf97363dbc4e283c3eb8f0a3d41c (patch)
treea3d0731c2ae3ace7f09f9ae86303de08c9cf3cbc /guix-data-service
parentf2d98b626d25fae71b558e79915507c60ee84109 (diff)
downloaddata-service-110a3b7ce5fdbf97363dbc4e283c3eb8f0a3d41c.tar
data-service-110a3b7ce5fdbf97363dbc4e283c3eb8f0a3d41c.tar.gz
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.
Diffstat (limited to 'guix-data-service')
-rw-r--r--guix-data-service/comparison.scm21
1 files 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)