diff options
author | Christopher Baines <mail@cbaines.net> | 2023-09-11 15:42:13 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2023-09-12 13:11:00 +0100 |
commit | 4cd601a887d4a2c21d929c02d87d33b9bedcf9f1 (patch) | |
tree | a2946284b38c39f041bb876e6272586f9fb063a3 /nar-herder/database.scm | |
parent | 8f59645a21c185cf17c0297ede804cb079bdb0aa (diff) | |
download | nar-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.scm | 19 |
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 |