aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/datastore/sqlite.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix-build-coordinator/datastore/sqlite.scm')
-rw-r--r--guix-build-coordinator/datastore/sqlite.scm29
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