diff options
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>) |