From a1e481cc4dbd81df77490e6ab8cab9ef55605248 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Thu, 7 Mar 2019 23:50:51 +0000 Subject: Continue improving pages and linking things together --- guix-data-service/model/derivation.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'guix-data-service/model/derivation.scm') diff --git a/guix-data-service/model/derivation.scm b/guix-data-service/model/derivation.scm index 05c9e95..305c260 100644 --- a/guix-data-service/model/derivation.scm +++ b/guix-data-service/model/derivation.scm @@ -9,6 +9,8 @@ #:use-module (guix-data-service model utils) #:export (select-derivation-by-file-name select-derivation-outputs-by-derivation-id + select-derivation-by-output-filename + select-derivations-using-output select-derivation-inputs-by-derivation-id select-existing-derivations select-derivations-by-id @@ -34,6 +36,32 @@ ",") ")")) +(define (select-derivation-by-output-filename conn filename) + (define query + (string-append + "SELECT derivations.file_name, derivation_outputs.id " + "FROM derivation_output_details " + "INNER JOIN derivation_outputs" + " ON derivation_output_details.id = derivation_outputs.derivation_output_details_id " + "INNER JOIN derivations" + " ON derivation_outputs.derivation_id = derivations.id " + "WHERE derivation_output_details.path = $1")) + + (exec-query conn query (list filename))) + +(define (select-derivations-using-output conn output-id) + (define query + (string-append + "SELECT derivations.file_name " + "FROM derivations " + "INNER JOIN derivation_inputs" + " ON derivation_inputs.derivation_id = derivations.id " + "WHERE derivation_output_id = $1 " + "ORDER BY derivations.file_name " + "LIMIT 100 ")) + + (exec-query conn query (list output-id))) + (define (insert-derivation-outputs conn derivation-id names-and-derivation-outputs) -- cgit v1.2.3