aboutsummaryrefslogtreecommitdiff
path: root/nar-herder/database.scm
diff options
context:
space:
mode:
Diffstat (limited to 'nar-herder/database.scm')
-rw-r--r--nar-herder/database.scm27
1 files changed, 25 insertions, 2 deletions
diff --git a/nar-herder/database.scm b/nar-herder/database.scm
index e30c82a..e8c8b8d 100644
--- a/nar-herder/database.scm
+++ b/nar-herder/database.scm
@@ -324,7 +324,8 @@ PRAGMA optimize;")))
id)))
-(define (database-insert-narinfo database narinfo)
+(define* (database-insert-narinfo database narinfo
+ #:key change-datetime)
(define (insert-narinfo-record db)
(let ((statement
(sqlite-prepare
@@ -408,6 +409,25 @@ INSERT INTO recent_changes (
(sqlite-step statement)
(sqlite-reset statement)))
+ (define (insert-change-with-datetime db contents datetime)
+ (let ((statement
+ (sqlite-prepare
+ db
+ "
+INSERT INTO recent_changes (
+ datetime, change, data
+) VALUES (
+ :datetime, 'addition', :contents
+)"
+ #:cache? #t)))
+ (sqlite-bind-arguments
+ statement
+ #:contents contents
+ #:datetime datetime)
+
+ (sqlite-step statement)
+ (sqlite-reset statement)))
+
(database-call-with-transaction
database
(lambda (db)
@@ -426,7 +446,10 @@ INSERT INTO recent_changes (
(make-list (length references) narinfo-id)
references))
- (insert-change db (narinfo-contents narinfo))
+ (if change-datetime
+ (insert-change-with-datetime db (narinfo-contents narinfo)
+ change-datetime)
+ (insert-change db (narinfo-contents narinfo)))
narinfo-id))))