guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/07: Rework insert-blocked-builds to make it more efficient


From: Christopher Baines
Subject: 01/07: Rework insert-blocked-builds to make it more efficient
Date: Sat, 12 Nov 2022 05:59:12 -0500 (EST)

cbaines pushed a commit to branch master
in repository data-service.

commit 0f22e3ab4078bf35a8f7468004cf764d92904b77
Author: Christopher Baines <mail@cbaines.net>
AuthorDate: Fri Nov 11 11:10:29 2022 +0000

    Rework insert-blocked-builds to make it more efficient
    
    This also fixes a typo in the partition name.
---
 guix-data-service/model/blocked-builds.scm | 39 ++++++++++++++----------------
 1 file changed, 18 insertions(+), 21 deletions(-)

diff --git a/guix-data-service/model/blocked-builds.scm 
b/guix-data-service/model/blocked-builds.scm
index cc033f6..e90aaca 100644
--- a/guix-data-service/model/blocked-builds.scm
+++ b/guix-data-service/model/blocked-builds.scm
@@ -133,24 +133,17 @@ WHERE NOT EXISTS (
               (list (number->string build-id)
                     build-server-id)))
 
-(define (insert-blocked-builds conn data)
-  (define (create-partitions)
-    (for-each
-     (lambda (build-server-id)
-       (exec-query
-        conn
-        (string-append
-         "
-CREATE TABLE IF NOT EXISTS blocked_builds_build_server__"
-         (number->string build-server-id) "
+(define (insert-blocked-builds conn build-server-id data)
+  (define (create-partition)
+    (exec-query
+     conn
+     (string-append
+      "
+CREATE TABLE IF NOT EXISTS blocked_builds_build_server_"
+      (number->string build-server-id) "
 PARTITION OF blocked_builds FOR VALUES IN ("
-         (number->string build-server-id)
-         ")")))
-     (delete-duplicates
-      (map (lambda (fields)
-             (string->number (car fields)))
-           data)
-      =)))
+      (number->string build-server-id)
+      ")")))
 
   (define (try-insert)
     (exec-query
@@ -165,8 +158,11 @@ INSERT INTO blocked_builds (
 VALUES "
       (string-join
        (map (match-lambda
-              ((a b c)
-               (simple-format #f "(~A, ~A, ~A)" a b c)))
+              ((b c)
+               (simple-format #f "(~A, ~A, ~A)"
+                              build-server-id
+                              b
+                              c)))
             data)
        ", ")
       "
@@ -197,6 +193,7 @@ WHERE id = $1")
           (unless (null? blocking-derivation-output-details-set-ids)
             (insert-blocked-builds
              conn
+             build-server-id
              (map
               (lambda (blocking-derivation-output-details-set-id)
                 (list build-server-id
@@ -242,10 +239,10 @@ WHERE builds.id IN ("
               blocking-derivation-output-details-set-id)))
         (insert-blocked-builds
          conn
+         build-server-id
          (map
           (lambda (blocked-derivation-output-details-set-id)
-            (list build-server-id
-                  blocked-derivation-output-details-set-id
+            (list blocked-derivation-output-details-set-id
                   blocking-derivation-output-details-set-id))
           blocked-derivation-output-details-set-ids)))))
    (exec-query



reply via email to

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