diff options
Diffstat (limited to 'guix-build-coordinator/datastore/sqlite.scm')
-rw-r--r-- | guix-build-coordinator/datastore/sqlite.scm | 18 |
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) |