aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service/model/derivation.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2019-03-07 23:50:51 +0000
committerChristopher Baines <mail@cbaines.net>2019-03-07 23:50:51 +0000
commita1e481cc4dbd81df77490e6ab8cab9ef55605248 (patch)
treed945d9afc1df308dffe09bad147e106713e00997 /guix-data-service/model/derivation.scm
parent0380c84a676647b8879315b50be52a04362d616a (diff)
downloaddata-service-a1e481cc4dbd81df77490e6ab8cab9ef55605248.tar
data-service-a1e481cc4dbd81df77490e6ab8cab9ef55605248.tar.gz
Continue improving pages and linking things together
Diffstat (limited to 'guix-data-service/model/derivation.scm')
-rw-r--r--guix-data-service/model/derivation.scm28
1 files changed, 28 insertions, 0 deletions
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)