guix-commits
[Top][All Lists]
Advanced

[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)))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]