aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/datastore/sqlite.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix-build-coordinator/datastore/sqlite.scm')
-rw-r--r--guix-build-coordinator/datastore/sqlite.scm37
1 files changed, 20 insertions, 17 deletions
diff --git a/guix-build-coordinator/datastore/sqlite.scm b/guix-build-coordinator/datastore/sqlite.scm
index f97a164..1c01cd2 100644
--- a/guix-build-coordinator/datastore/sqlite.scm
+++ b/guix-build-coordinator/datastore/sqlite.scm
@@ -3542,23 +3542,26 @@ INSERT INTO derivation_outputs (derivation_id, name, output_id)
VALUES (:derivation_id, :name, :output_id)"
#:cache? #t)))
- (for-each (match-lambda
- ((name . output-id)
- (sqlite-bind-arguments
- statement
- #:derivation_id derivation-id
- #:name name
- #:output_id output-id)
- (sqlite-step statement)
- (sqlite-reset statement)))
- derivation-outputs-with-ids)
-
- (for-each (lambda (output-id)
- (unless (output-has-successful-build? output-id)
- (insert-into-unbuilt-outputs output-id)))
- (map cdr derivation-outputs-with-ids))
-
- derivation-outputs-with-ids))
+ (let ((result
+ (map (match-lambda
+ ((name . output-id)
+ (sqlite-bind-arguments
+ statement
+ #:derivation_id derivation-id
+ #:name name
+ #:output_id output-id)
+ (sqlite-step statement)
+ (sqlite-reset statement)
+
+ (cons name (last-insert-rowid db))))
+ derivation-outputs-with-ids)))
+
+ (for-each (lambda (output-id)
+ (unless (output-has-successful-build? output-id)
+ (insert-into-unbuilt-outputs output-id)))
+ (map cdr derivation-outputs-with-ids))
+
+ result)))
(define-method (datastore-insert-build
(datastore <sqlite-datastore>)