aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/datastore/sqlite.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix-build-coordinator/datastore/sqlite.scm')
-rw-r--r--guix-build-coordinator/datastore/sqlite.scm18
1 files changed, 18 insertions, 0 deletions
diff --git a/guix-build-coordinator/datastore/sqlite.scm b/guix-build-coordinator/datastore/sqlite.scm
index b566180..4f43c5b 100644
--- a/guix-build-coordinator/datastore/sqlite.scm
+++ b/guix-build-coordinator/datastore/sqlite.scm
@@ -42,6 +42,7 @@
datastore-list-unprocessed-builds
datastore-list-unprocessed-builds-with-built-inputs
datastore-fetch-unprocessed-builds-with-propagated-priorities
+ datastore-count-unprocessed-hook-events
datastore-list-unprocessed-hook-events
datastore-delete-unprocessed-hook-event
datastore-list-agent-builds
@@ -1008,6 +1009,23 @@ VALUES (:event, :arguments)")))
(sqlite-reset statement))
#t)
+(define-method (datastore-count-unprocessed-hook-events
+ (datastore <sqlite-datastore>))
+ (call-with-worker-thread
+ (slot-ref datastore 'worker-reader-thread-channel)
+ (lambda (db)
+ (let ((statement
+ (sqlite-prepare
+ db
+ "
+SELECT COUNT(*) FROM unprocessed_hook_events")))
+
+ (let ((count (match (sqlite-step statement)
+ (#(count) count))))
+ (sqlite-reset statement)
+
+ count)))))
+
(define-method (datastore-list-unprocessed-hook-events
(datastore <sqlite-datastore>)
limit)