Have insert-blocked-builds cache when the partitions exist

To make it more efficient.
This commit is contained in:
Christopher Baines 2022-11-11 11:29:08 +00:00
parent 0f22e3ab40
commit 48d8ee885a

View file

@ -133,19 +133,26 @@ WHERE NOT EXISTS (
(list (number->string build-id)
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)
")")))
(define %created-partitions
'())
(define (insert-blocked-builds conn build-server-id data)
(unless (null? data)
(unless (member build-server-id %created-partitions)
(exec-query
conn
(string-append
"
CREATE TABLE IF NOT EXISTS blocked_builds_build_server_"
build-server-id "
PARTITION OF blocked_builds FOR VALUES IN ("
build-server-id
")"))
(set! %created-partitions
(cons build-server-id
%created-partitions)))
(define (try-insert)
(exec-query
conn
(string-append
@ -169,9 +176,7 @@ VALUES "
ON CONFLICT DO NOTHING")
'()))
(unless (null? data)
(create-partitions)
(try-insert)))
#t)
(define (handle-populating-blocked-builds-for-scheduled-builds conn build-ids)
(define (get-build-details build-id)