aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service/model/blocked-builds.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2022-11-11 11:10:29 +0000
committerChristopher Baines <mail@cbaines.net>2022-11-11 11:29:37 +0000
commit0f22e3ab4078bf35a8f7468004cf764d92904b77 (patch)
treeb75c94f146198476f5c4972d20530af0846ed488 /guix-data-service/model/blocked-builds.scm
parent4101c6b89724b0f4e25c54e853dcdc6d6a6ae562 (diff)
downloaddata-service-0f22e3ab4078bf35a8f7468004cf764d92904b77.tar
data-service-0f22e3ab4078bf35a8f7468004cf764d92904b77.tar.gz
Rework insert-blocked-builds to make it more efficient
This also fixes a typo in the partition name.
Diffstat (limited to 'guix-data-service/model/blocked-builds.scm')
-rw-r--r--guix-data-service/model/blocked-builds.scm39
1 files 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