From 4cd601a887d4a2c21d929c02d87d33b9bedcf9f1 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Mon, 11 Sep 2023 15:42:13 +0100 Subject: Use fold-nar-files for check-storage To avoid calling get-nar-files, as this doesn't scale well. --- nar-herder/database.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'nar-herder/database.scm') diff --git a/nar-herder/database.scm b/nar-herder/database.scm index 2bac86f..7a550ec 100644 --- a/nar-herder/database.scm +++ b/nar-herder/database.scm @@ -57,6 +57,7 @@ database-fold-all-narinfo-files database-map-all-narinfo-files + database-count-narinfo-files database-insert-cached-narinfo-file database-select-cached-narinfo-file-by-hash @@ -1117,6 +1118,24 @@ FROM narinfo_files" result)) '())) +(define (database-count-narinfo-files database) + (call-with-worker-thread + (database-reader-thread-channel database) + (lambda (db) + (let ((statement + (sqlite-prepare + db + " +SELECT COUNT(*) FROM narinfo_files" + #:cache? #t))) + + (let ((result + (vector-ref (sqlite-step statement) + 0))) + (sqlite-reset statement) + + result))))) + (define (database-insert-cached-narinfo-file database narinfo-id size -- cgit v1.2.3