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