aboutsummaryrefslogtreecommitdiff
path: root/nar-herder/database.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2023-09-07 15:54:14 +0100
committerChristopher Baines <mail@cbaines.net>2023-09-07 15:54:14 +0100
commit2bd0b0c806b060c767afca60cdddd1aef03ff930 (patch)
tree64db309e90acc73dd1463cc10ffb565049dee139 /nar-herder/database.scm
parent6f061356d52b614afa4337a33b248bcb071b0314 (diff)
downloadnar-herder-2bd0b0c806b060c767afca60cdddd1aef03ff930.tar
nar-herder-2bd0b0c806b060c767afca60cdddd1aef03ff930.tar.gz
Add datastore-fold-all-narinfo-files
Diffstat (limited to 'nar-herder/database.scm')
-rw-r--r--nar-herder/database.scm19
1 files changed, 14 insertions, 5 deletions
diff --git a/nar-herder/database.scm b/nar-herder/database.scm
index e0c6fe8..dca11ad 100644
--- a/nar-herder/database.scm
+++ b/nar-herder/database.scm
@@ -55,6 +55,7 @@
database-select-narinfo-files
database-select-narinfo-files-by-narinfo-id
+ database-fold-all-narinfo-files
database-map-all-narinfo-files
database-insert-cached-narinfo-file
@@ -1077,7 +1078,7 @@ WHERE narinfos.id = :narinfo_id"
result)))))))
-(define (database-map-all-narinfo-files database proc)
+(define (database-fold-all-narinfo-files database proc init)
(call-with-worker-thread
(database-reader-thread-channel database)
(lambda (db)
@@ -1093,16 +1094,24 @@ FROM narinfo_files"
(lambda (row result)
(match row
(#(size compression url)
- (cons (proc `((size . ,size)
- (compression . ,compression)
- (url . ,url)))
+ (proc `((size . ,size)
+ (compression . ,compression)
+ (url . ,url))
result))))
- '()
+ init
statement)))
(sqlite-reset statement)
result-list)))))
+(define (database-map-all-narinfo-files database proc)
+ (database-fold-all-narinfo-files
+ database
+ (lambda (nar-file result)
+ (cons (proc nar-file)
+ result))
+ '()))
+
(define (database-insert-cached-narinfo-file database
narinfo-id
size