diff options
author | Christopher Baines <mail@cbaines.net> | 2020-12-27 10:27:21 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2020-12-27 10:27:21 +0000 |
commit | cbe9859064dba04d592bdc810cf61b3e87b63b28 (patch) | |
tree | f3f95e8eeb8c8f40f26bc8ba0807dc33b606941d /guix-data-service | |
parent | 8d6f255646bf09aaea4909cf000d425037e2223d (diff) | |
download | data-service-cbe9859064dba04d592bdc810cf61b3e87b63b28.tar data-service-cbe9859064dba04d592bdc810cf61b3e87b63b28.tar.gz |
Support inserting build statuses without a transaction
In case this code is run as part of a bigger transaction.
Diffstat (limited to 'guix-data-service')
-rw-r--r-- | guix-data-service/model/build-status.scm | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/guix-data-service/model/build-status.scm b/guix-data-service/model/build-status.scm index ec833b5..4a2a801 100644 --- a/guix-data-service/model/build-status.scm +++ b/guix-data-service/model/build-status.scm @@ -58,7 +58,8 @@ WHERE builds.build_server_id = $1 AND (list build-id) `((,timestamp ,status)))) -(define (insert-build-statuses conn build-ids data) +(define* (insert-build-statuses conn build-ids data + #:key (transaction? #t)) (define query (string-append " @@ -130,10 +131,13 @@ WINDOW rows_for_build AS ( (exec-query conn query)) - (with-postgresql-transaction - conn - (lambda (conn) - (exec-query conn query '()) + (define (operations conn) + (exec-query conn query '()) + + (delete-old-latest-status-entries conn) + (insert-new-latest-status-entries conn)) - (delete-old-latest-status-entries conn) - (insert-new-latest-status-entries conn)))) + (if transaction? + (with-postgresql-transaction conn + operations) + (operations conn))) |