diff options
Diffstat (limited to 'guix-data-service/model')
-rw-r--r-- | guix-data-service/model/build.scm | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/guix-data-service/model/build.scm b/guix-data-service/model/build.scm index d6f911b..92d4969 100644 --- a/guix-data-service/model/build.scm +++ b/guix-data-service/model/build.scm @@ -23,6 +23,7 @@ #:use-module (json) #:use-module (guix-data-service database) #:use-module (guix-data-service model utils) + #:use-module (guix-data-service model derivation) #:use-module (guix-data-service model system) #:export (select-build-stats select-builds-with-context @@ -470,7 +471,10 @@ WHERE derivations.file_name = $1" (_ #f))) -(define (insert-builds conn build-server-id derivation-file-names +(define (insert-builds conn + build-server-id + derivation-file-names + derivation-output-details-lists build-server-build-ids) (let ((build-ids (insert-missing-data-and-return-all-ids @@ -487,6 +491,26 @@ WHERE derivations.file_name = $1" build-server-build-ids) #:delete-duplicates? #t))) + (for-each + (lambda (build-id derivation-output-details) + (and=> + derivation-output-details + (lambda (details) + (let ((derivation-output-details-set-id + (derivation-output-details-ids->derivation-output-details-set-id + conn + (derivation-output-details->derivation-output-details-ids + conn + details)))) + (exec-query + conn + " +UPDATE builds SET derivation_output_details_set_id = $1 WHERE id = $2" + (list (number->string derivation-output-details-set-id) + (number->string build-id))))))) + build-ids + derivation-output-details-lists) + (exec-query conn (string-append |