aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--guix-build-coordinator/client-communication.scm2
-rw-r--r--guix-build-coordinator/datastore/sqlite.scm12
2 files changed, 13 insertions, 1 deletions
diff --git a/guix-build-coordinator/client-communication.scm b/guix-build-coordinator/client-communication.scm
index c087439..271e59e 100644
--- a/guix-build-coordinator/client-communication.scm
+++ b/guix-build-coordinator/client-communication.scm
@@ -268,6 +268,8 @@
(lambda (val)
(string=? val "true")))
'unset)
+ #:after-id
+ (assq-ref query-parameters 'after_id)
#:limit
(or (and=> (assq-ref query-parameters 'limit)
(lambda (val)
diff --git a/guix-build-coordinator/datastore/sqlite.scm b/guix-build-coordinator/datastore/sqlite.scm
index 7c9b4d0..1bc4aa0 100644
--- a/guix-build-coordinator/datastore/sqlite.scm
+++ b/guix-build-coordinator/datastore/sqlite.scm
@@ -1187,6 +1187,7 @@ WHERE uuid = :uuid"
(not-tags '())
(processed 'unset)
(canceled 'unset)
+ (after-id #f)
(limit 1000))
(call-with-worker-thread
(slot-ref datastore 'worker-reader-thread-channel)
@@ -1268,15 +1269,24 @@ INNER JOIN (
(cond
((eq? canceled #t) '("canceled = 1"))
((eq? canceled #f) '("canceled = 0"))
- (else '())))
+ (else '()))
+ (if after-id
+ '("uuid > :after_id")
+ '()))
" AND ")
"\n")
"")
+ "ORDER BY uuid ASC\n"
(if limit
(string-append "LIMIT " (number->string limit) "\n")
""))
#:cache? #f)))
+ (when after-id
+ (sqlite-bind-arguments
+ statement
+ #:after_id after-id))
+
(let ((result
(sqlite-map
(match-lambda