diff options
author | Christopher Baines <mail@cbaines.net> | 2019-12-05 16:23:51 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2019-12-12 20:07:22 +0000 |
commit | aa3af00e074998fb1c98fcb152a7e14e5fed546f (patch) | |
tree | 6008f0268e31d194c55e602a5a5a09136a9ead3b /guix-data-service/model | |
parent | 9e5cde80b3d63025e4bde9fcb38d26056edb724a (diff) | |
download | data-service-aa3af00e074998fb1c98fcb152a7e14e5fed546f.tar data-service-aa3af00e074998fb1c98fcb152a7e14e5fed546f.tar.gz |
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.
Diffstat (limited to 'guix-data-service/model')
-rw-r--r-- | guix-data-service/model/nar.scm | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/guix-data-service/model/nar.scm b/guix-data-service/model/nar.scm index d3a524e..b8e39e1 100644 --- a/guix-data-service/model/nar.scm +++ b/guix-data-service/model/nar.scm @@ -226,21 +226,22 @@ VALUES ($1, $2)") SELECT DISTINCT derivation_output_details.path FROM derivations INNER JOIN derivation_outputs - ON derivations.id = derivation_outputs.id + ON derivations.id = derivation_outputs.derivation_id INNER JOIN derivation_output_details ON derivation_outputs.derivation_output_details_id = derivation_output_details.id -WHERE file_name IN ( - SELECT derivation_file_name - FROM builds - INNER JOIN build_status - ON builds.id = build_status.build_id - WHERE - build_server_id = $1 AND - build_status.status = 'succeeded' -) AND derivation_output_details.path NOT IN ( - SELECT store_path FROM nars -) AND - derivations.id IN ( +WHERE derivation_output_details.path NOT IN ( + SELECT store_path + FROM nars + INNER JOIN narinfo_signatures + ON nars.id = narinfo_signatures.nar_id + INNER JOIN narinfo_signature_data + ON narinfo_signatures.narinfo_signature_data_id = narinfo_signature_data.id + INNER JOIN narinfo_fetch_records + ON narinfo_signature_data.id = narinfo_fetch_records.narinfo_signature_data_id + WHERE narinfo_fetch_records.build_server_id = $1 +) + AND derivations.system = 'x86_64-linux' + AND derivations.id IN ( SELECT derivation_id FROM 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 - build-server-id))))) + (map car (exec-query conn query (list (number->string build-server-id))))) (define (select-nars-for-output conn output-file-name) (define query |