[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
01/03: Support inserting build statuses without a transaction
From: |
Christopher Baines |
Subject: |
01/03: Support inserting build statuses without a transaction |
Date: |
Sun, 27 Dec 2020 05:38:45 -0500 (EST) |
cbaines pushed a commit to branch master
in repository data-service.
commit cbe9859064dba04d592bdc810cf61b3e87b63b28
Author: Christopher Baines <mail@cbaines.net>
AuthorDate: Sun Dec 27 10:27:21 2020 +0000
Support inserting build statuses without a transaction
In case this code is run as part of a bigger transaction.
---
guix-data-service/model/build-status.scm | 18 +++++++++++-------
1 file 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)))