Add a function to fetch references for derivations
This replicates the store item references for the derivation, through looking up the inputs which the derivation references, and also the sources.
This commit is contained in:
parent
e3d8a23716
commit
120af42c24
1 changed files with 28 additions and 0 deletions
|
|
@ -17,6 +17,7 @@
|
|||
select-derivation-by-file-name-hash
|
||||
select-derivation-outputs-by-derivation-id
|
||||
select-derivation-sources-by-derivation-id
|
||||
select-derivation-references-by-derivation-id
|
||||
select-derivation-source-file-by-store-path
|
||||
select-derivation-by-output-filename
|
||||
select-derivations-using-output
|
||||
|
|
@ -714,6 +715,33 @@ ORDER BY 1"))
|
|||
(map first
|
||||
(exec-query conn query (list (number->string id)))))
|
||||
|
||||
(define (select-derivation-references-by-derivation-id conn id)
|
||||
(define query
|
||||
(string-append
|
||||
"
|
||||
SELECT * FROM (
|
||||
SELECT derivation_source_files.store_path
|
||||
FROM derivation_source_files
|
||||
INNER JOIN derivation_sources
|
||||
ON derivation_source_files.id = derivation_sources.derivation_source_file_id
|
||||
WHERE derivation_sources.derivation_id = $1
|
||||
UNION ALL
|
||||
SELECT derivations.file_name
|
||||
FROM derivation_inputs
|
||||
INNER JOIN derivation_outputs
|
||||
ON derivation_outputs.id = derivation_inputs.derivation_output_id
|
||||
INNER JOIN derivation_output_details
|
||||
ON derivation_outputs.derivation_output_details_id = derivation_output_details.id
|
||||
INNER JOIN derivations
|
||||
ON derivation_outputs.derivation_id = derivations.id
|
||||
WHERE derivation_inputs.derivation_id = $1
|
||||
GROUP BY derivations.file_name
|
||||
) AS data
|
||||
ORDER BY 1"))
|
||||
|
||||
(map first
|
||||
(exec-query conn query (list (number->string id)))))
|
||||
|
||||
(define (select-derivation-source-file-by-store-path conn store-path)
|
||||
(define query
|
||||
"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue