diff options
-rw-r--r-- | guix-build-coordinator/datastore/sqlite.scm | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/guix-build-coordinator/datastore/sqlite.scm b/guix-build-coordinator/datastore/sqlite.scm index fb88fb5..e374bbc 100644 --- a/guix-build-coordinator/datastore/sqlite.scm +++ b/guix-build-coordinator/datastore/sqlite.scm @@ -757,22 +757,30 @@ SELECT INNER JOIN builds AS blocked_builds ON related_derivations.name = blocked_builds.derivation_name AND blocked_builds.processed = 0 + AND blocked_builds.canceled = 0 ) FROM builds" (if system " INNER JOIN derivations ON derivations.name = builds.derivation_name" "") - " -INNER JOIN build_results + " +LEFT JOIN build_results ON builds.uuid = build_results.build_id -WHERE builds.processed = 1 - AND build_results.result = 'failure'" - (if system - " - AND derivations.system = :system" - "") +WHERE + ( + ( + builds.processed = 1 + AND build_results.result = 'failure' + ) OR ( + builds.canceled = 1 + ) + )" + (if system " + AND derivations.system = :system" + "") + " AND NOT EXISTS ( SELECT 1 FROM derivation_outputs @@ -783,8 +791,9 @@ WHERE builds.processed = 1 INNER JOIN build_results AS other_build_results ON other_builds.uuid = other_build_results.build_id WHERE derivation_outputs.derivation_name = builds.derivation_name - AND other_build_results.result = 'success' -) ORDER BY 3 DESC, 2, 1") + AND other_build_results.result = 'success' + ) +ORDER BY 3 DESC, 2, 1") #:cache? #t))) (when system |