diff options
author | Christopher Baines <mail@cbaines.net> | 2021-01-16 19:07:42 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2021-01-16 19:07:42 +0000 |
commit | 19c7e41c7370f94a14b6cf52b709d47216b6b040 (patch) | |
tree | 2124d050ed74e0c387d9359fb7303bc55d941d23 /guix-build-coordinator | |
parent | d0c492daf37e73f40c062b2f5c9bd99f1a809680 (diff) | |
download | build-coordinator-19c7e41c7370f94a14b6cf52b709d47216b6b040.tar build-coordinator-19c7e41c7370f94a14b6cf52b709d47216b6b040.tar.gz |
Add datastore-list-unbuilt-derivation-outputs
Diffstat (limited to 'guix-build-coordinator')
-rw-r--r-- | guix-build-coordinator/datastore.scm | 1 | ||||
-rw-r--r-- | guix-build-coordinator/datastore/sqlite.scm | 30 |
2 files changed, 31 insertions, 0 deletions
diff --git a/guix-build-coordinator/datastore.scm b/guix-build-coordinator/datastore.scm index a521911..20df399 100644 --- a/guix-build-coordinator/datastore.scm +++ b/guix-build-coordinator/datastore.scm @@ -30,6 +30,7 @@ (re-export datastore-count-setup-failures) (re-export datastore-list-setup-failures-for-build) (re-export datastore-fetch-setup-failures) +(re-export datastore-list-unbuilt-derivation-outputs) (re-export datastore-list-build-outputs) (re-export datastore-list-related-derivations-with-no-build-for-outputs) (re-export datastore-list-failed-builds-with-blocking-count) diff --git a/guix-build-coordinator/datastore/sqlite.scm b/guix-build-coordinator/datastore/sqlite.scm index 8e23633..5cab70f 100644 --- a/guix-build-coordinator/datastore/sqlite.scm +++ b/guix-build-coordinator/datastore/sqlite.scm @@ -2533,6 +2533,36 @@ WHERE derivation_name = :derivation_name" result))))) +(define-method (datastore-list-unbuilt-derivation-outputs + (datastore <sqlite-datastore>) + derivation-name) + (call-with-worker-thread + (slot-ref datastore 'worker-reader-thread-channel) + (lambda (db) + (let ((statement + (sqlite-prepare + db + " +SELECT derivation_outputs.output +FROM derivation_outputs +INNER JOIN unbuilt_outputs + ON derivation_outputs.output = unbuilt_outputs.output +WHERE derivation_name = :derivation_name" + #:cache? #t))) + + (sqlite-bind-arguments + statement + #:derivation_name derivation-name) + + (let ((result + (sqlite-map + (match-lambda + (#(output) output)) + statement))) + (sqlite-reset statement) + + result))))) + (define-method (datastore-list-build-outputs (datastore <sqlite-datastore>) build-id) |