diff options
author | Christopher Baines <mail@cbaines.net> | 2022-01-04 12:34:07 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2022-01-04 12:34:07 +0000 |
commit | 309fc55a83f8f95d6fc2fd8683d61283321b99a3 (patch) | |
tree | 135199a7de8fd249d4349c91c70b42f1d60ad1b4 /guix-build-coordinator | |
parent | ea78649726cccc352b0170161effdac390a725c4 (diff) | |
download | build-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')
-rw-r--r-- | guix-build-coordinator/datastore/sqlite.scm | 37 |
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>) |