Fix and improve fetching outputs to fetch from build servers
The join on derivation_outputs was completely wrong, so fix that. Also, rather than only selecting outputs where there's a corresponding build, just eliminate outputs where there is an entry in the nars table, fetched from the relevant build server. Also just look at x86_64-linux derivations, because there's no filtering on relevant derivations for a build server at the moment.
This commit is contained in:
parent
9e5cde80b3
commit
aa3af00e07
1 changed files with 16 additions and 16 deletions
|
|
@ -226,21 +226,22 @@ VALUES ($1, $2)")
|
||||||
SELECT DISTINCT derivation_output_details.path
|
SELECT DISTINCT derivation_output_details.path
|
||||||
FROM derivations
|
FROM derivations
|
||||||
INNER JOIN derivation_outputs
|
INNER JOIN derivation_outputs
|
||||||
ON derivations.id = derivation_outputs.id
|
ON derivations.id = derivation_outputs.derivation_id
|
||||||
INNER JOIN derivation_output_details
|
INNER JOIN derivation_output_details
|
||||||
ON derivation_outputs.derivation_output_details_id = derivation_output_details.id
|
ON derivation_outputs.derivation_output_details_id = derivation_output_details.id
|
||||||
WHERE file_name IN (
|
WHERE derivation_output_details.path NOT IN (
|
||||||
SELECT derivation_file_name
|
SELECT store_path
|
||||||
FROM builds
|
FROM nars
|
||||||
INNER JOIN build_status
|
INNER JOIN narinfo_signatures
|
||||||
ON builds.id = build_status.build_id
|
ON nars.id = narinfo_signatures.nar_id
|
||||||
WHERE
|
INNER JOIN narinfo_signature_data
|
||||||
build_server_id = $1 AND
|
ON narinfo_signatures.narinfo_signature_data_id = narinfo_signature_data.id
|
||||||
build_status.status = 'succeeded'
|
INNER JOIN narinfo_fetch_records
|
||||||
) AND derivation_output_details.path NOT IN (
|
ON narinfo_signature_data.id = narinfo_fetch_records.narinfo_signature_data_id
|
||||||
SELECT store_path FROM nars
|
WHERE narinfo_fetch_records.build_server_id = $1
|
||||||
) AND
|
)
|
||||||
derivations.id IN (
|
AND derivations.system = 'x86_64-linux'
|
||||||
|
AND derivations.id IN (
|
||||||
SELECT derivation_id
|
SELECT derivation_id
|
||||||
FROM package_derivations
|
FROM package_derivations
|
||||||
INNER JOIN guix_revision_package_derivations
|
INNER JOIN guix_revision_package_derivations
|
||||||
|
|
@ -252,10 +253,9 @@ WHERE file_name IN (
|
||||||
",")
|
",")
|
||||||
")
|
")
|
||||||
)
|
)
|
||||||
LIMIT 1500"))
|
LIMIT 10000"))
|
||||||
|
|
||||||
(map car (exec-query conn query (list (number->string
|
(map car (exec-query conn query (list (number->string build-server-id)))))
|
||||||
build-server-id)))))
|
|
||||||
|
|
||||||
(define (select-nars-for-output conn output-file-name)
|
(define (select-nars-for-output conn output-file-name)
|
||||||
(define query
|
(define query
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue