aboutsummaryrefslogtreecommitdiff
path: root/nar-herder/database.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2023-09-11 15:42:13 +0100
committerChristopher Baines <mail@cbaines.net>2023-09-12 13:11:00 +0100
commit4cd601a887d4a2c21d929c02d87d33b9bedcf9f1 (patch)
treea2946284b38c39f041bb876e6272586f9fb063a3 /nar-herder/database.scm
parent8f59645a21c185cf17c0297ede804cb079bdb0aa (diff)
downloadnar-herder-4cd601a887d4a2c21d929c02d87d33b9bedcf9f1.tar
nar-herder-4cd601a887d4a2c21d929c02d87d33b9bedcf9f1.tar.gz
Use fold-nar-files for check-storage
To avoid calling get-nar-files, as this doesn't scale well.
Diffstat (limited to 'nar-herder/database.scm')
-rw-r--r--nar-herder/database.scm19
1 files changed, 19 insertions, 0 deletions
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