aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/datastore
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2022-01-04 12:34:07 +0000
committerChristopher Baines <mail@cbaines.net>2022-01-04 12:34:07 +0000
commit309fc55a83f8f95d6fc2fd8683d61283321b99a3 (patch)
tree135199a7de8fd249d4349c91c70b42f1d60ad1b4 /guix-build-coordinator/datastore
parentea78649726cccc352b0170161effdac390a725c4 (diff)
downloadbuild-coordinator-309fc55a83f8f95d6fc2fd8683d61283321b99a3.tar
build-coordinator-309fc55a83f8f95d6fc2fd8683d61283321b99a3.tar.gz
Fix insert-derivation-outputs returning the wrong ids
It's expected to return an alist containing the derivation output ids, not the output ids.
Diffstat (limited to 'guix-build-coordinator/datastore')
-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>)