Split out inserting derivation output details sets
So that this can be used when inserting builds.
This commit is contained in:
parent
811256a920
commit
db37d9f6a8
1 changed files with 40 additions and 34 deletions
|
|
@ -54,6 +54,7 @@
|
||||||
select-derivation-outputs-in-revision
|
select-derivation-outputs-in-revision
|
||||||
fix-derivation-output-details-hash-encoding
|
fix-derivation-output-details-hash-encoding
|
||||||
derivation-output-details->derivation-output-details-ids
|
derivation-output-details->derivation-output-details-ids
|
||||||
|
derivation-output-details-ids->derivation-output-details-set-id
|
||||||
select-derivations-by-revision-name-and-version
|
select-derivations-by-revision-name-and-version
|
||||||
select-derivation-inputs-by-derivation-id
|
select-derivation-inputs-by-derivation-id
|
||||||
select-serialized-derivation-by-file-name
|
select-serialized-derivation-by-file-name
|
||||||
|
|
@ -985,6 +986,42 @@ LOCK TABLE ONLY derivation_output_details
|
||||||
(assq-ref details 'recursive)))
|
(assq-ref details 'recursive)))
|
||||||
derivation-output-details)))
|
derivation-output-details)))
|
||||||
|
|
||||||
|
(define (derivation-output-details-ids->derivation-output-details-set-id
|
||||||
|
conn
|
||||||
|
derivation-output-details-ids)
|
||||||
|
(define (select-derivation-output-details-sets-id)
|
||||||
|
(match (exec-query
|
||||||
|
conn
|
||||||
|
(string-append
|
||||||
|
"
|
||||||
|
SELECT id
|
||||||
|
FROM derivation_output_details_sets
|
||||||
|
WHERE derivation_output_details_ids = ARRAY["
|
||||||
|
(string-join (map number->string
|
||||||
|
derivation-output-details-ids)
|
||||||
|
",")
|
||||||
|
"]"))
|
||||||
|
(((id))
|
||||||
|
(string->number id))
|
||||||
|
(_ #f)))
|
||||||
|
|
||||||
|
(define (insert-into-derivation-output-details-sets)
|
||||||
|
(match (exec-query
|
||||||
|
conn
|
||||||
|
(string-append
|
||||||
|
"
|
||||||
|
INSERT INTO derivation_output_details_sets (derivation_output_details_ids)
|
||||||
|
VALUES (ARRAY["
|
||||||
|
(string-join (map number->string derivation-output-details-ids)
|
||||||
|
",")
|
||||||
|
"])
|
||||||
|
RETURNING id"))
|
||||||
|
(((id))
|
||||||
|
(string->number id))))
|
||||||
|
|
||||||
|
(or (select-derivation-output-details-sets-id)
|
||||||
|
(insert-into-derivation-output-details-sets)))
|
||||||
|
|
||||||
(define (insert-derivation-outputs conn
|
(define (insert-derivation-outputs conn
|
||||||
derivation-id
|
derivation-id
|
||||||
names-and-derivation-outputs)
|
names-and-derivation-outputs)
|
||||||
|
|
@ -1004,37 +1041,6 @@ LOCK TABLE ONLY derivation_output_details
|
||||||
",")
|
",")
|
||||||
";"))
|
";"))
|
||||||
|
|
||||||
(define (select-derivation-output-details-sets-id derivation-output-details-ids)
|
|
||||||
(match (exec-query
|
|
||||||
conn
|
|
||||||
(string-append
|
|
||||||
"
|
|
||||||
SELECT id
|
|
||||||
FROM derivation_output_details_sets
|
|
||||||
WHERE derivation_output_details_ids = ARRAY["
|
|
||||||
(string-join (map number->string
|
|
||||||
derivation-output-details-ids)
|
|
||||||
",")
|
|
||||||
"]"))
|
|
||||||
(((id))
|
|
||||||
(string->number id))
|
|
||||||
(_ #f)))
|
|
||||||
|
|
||||||
(define (insert-into-derivation-output-details-sets
|
|
||||||
derivation-output-details-ids)
|
|
||||||
(match (exec-query
|
|
||||||
conn
|
|
||||||
(string-append
|
|
||||||
"
|
|
||||||
INSERT INTO derivation_output_details_sets (derivation_output_details_ids)
|
|
||||||
VALUES (ARRAY["
|
|
||||||
(string-join (map number->string derivation-output-details-ids)
|
|
||||||
",")
|
|
||||||
"])
|
|
||||||
RETURNING id"))
|
|
||||||
(((id))
|
|
||||||
(string->number id))))
|
|
||||||
|
|
||||||
(define (insert-into-derivations-by-output-details-set
|
(define (insert-into-derivations-by-output-details-set
|
||||||
derivation_output_details_set_id)
|
derivation_output_details_set_id)
|
||||||
(exec-query
|
(exec-query
|
||||||
|
|
@ -1072,9 +1078,9 @@ VALUES ($1, $2)"
|
||||||
derivation-output-details-ids))
|
derivation-output-details-ids))
|
||||||
|
|
||||||
(insert-into-derivations-by-output-details-set
|
(insert-into-derivations-by-output-details-set
|
||||||
(or
|
(derivation-output-details-ids->derivation-output-details-set-id
|
||||||
(select-derivation-output-details-sets-id derivation-output-details-ids)
|
conn
|
||||||
(insert-into-derivation-output-details-sets derivation-output-details-ids)))
|
derivation-output-details-ids))
|
||||||
|
|
||||||
derivation-output-details-ids))
|
derivation-output-details-ids))
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue