aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service/comparison.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2020-11-20 19:28:39 +0000
committerChristopher Baines <mail@cbaines.net>2020-11-20 19:28:39 +0000
commit7b92a6a5b3c832b894bb0cacaeffe585564ff353 (patch)
tree39d3de61e2ac22e38768199eafdbb00562d000ea /guix-data-service/comparison.scm
parentd98c6765632118b1912720c16902da2622ca610b (diff)
downloaddata-service-7b92a6a5b3c832b894bb0cacaeffe585564ff353.tar
data-service-7b92a6a5b3c832b894bb0cacaeffe585564ff353.tar.gz
Allow the package derivation data procedure to not return all data
By adding after-name and limit-results parameters.
Diffstat (limited to 'guix-data-service/comparison.scm')
-rw-r--r--guix-data-service/comparison.scm23
1 files changed, 20 insertions, 3 deletions
diff --git a/guix-data-service/comparison.scm b/guix-data-service/comparison.scm
index 6b3ed4d..8003c90 100644
--- a/guix-data-service/comparison.scm
+++ b/guix-data-service/comparison.scm
@@ -254,7 +254,9 @@ GROUP BY derivation_source_files.store_path"))
;; Build changes are (symbols):
;; broken, fixed, still-failing,
;; still-working, unknown
- (build-change 'unknown))
+ (build-change 'unknown)
+ limit-results
+ after-name)
(define extra-constraints
(string-append
(if systems
@@ -374,6 +376,10 @@ WHERE
base_packages.id != target_packages.id OR
base_packages.file_name != target_packages.file_name
)"
+ (if after-name
+ "
+ AND coalesce(base_packages.name, target_packages.name) > $3"
+ "")
(cond
((eq? build-change #f) "")
((eq? build-change 'unknown)
@@ -481,9 +487,20 @@ WHERE
(else
(error "unknown build-change-value")))))))
"
-ORDER BY coalesce(base_packages.name, target_packages.name) ASC, base_packages.version, target_packages.version"))
+ORDER BY coalesce(base_packages.name, target_packages.name) ASC, base_packages.version, target_packages.version"
+ (if limit-results
+ (simple-format
+ #f
+ "
+LIMIT ~A"
+ (number->string limit-results))
+ "")))
- (exec-query conn query (list base_guix_revision_id target_guix_revision_id)))
+ (exec-query conn query `(,base_guix_revision_id
+ ,target_guix_revision_id
+ ,@(if after-name
+ (list after-name)
+ '()))))
(define* (package-differences-data conn
base_guix_revision_id