summaryrefslogtreecommitdiff
path: root/build.py
diff options
context:
space:
mode:
authorHelmut Grohne <helmut@subdivi.de>2020-10-08 22:13:57 +0200
committerHelmut Grohne <helmut@subdivi.de>2020-10-08 22:13:57 +0200
commitf6d219e1a4fddc0abb11b2235866d072789d1a13 (patch)
tree0711dd8948bb355093d2754d594994951647b2b6 /build.py
parent3ee1cd729ef5dd6f1fcce76c4c27d7f50823b124 (diff)
downloadcrossqa-f6d219e1a4fddc0abb11b2235866d072789d1a13.tar.gz
add build architecture to schema of depcheck table
Diffstat (limited to 'build.py')
-rwxr-xr-xbuild.py20
1 files changed, 12 insertions, 8 deletions
diff --git a/build.py b/build.py
index 9bfa52c..7906615 100755
--- a/build.py
+++ b/build.py
@@ -62,24 +62,28 @@ def main():
SELECT d.source, d.version, d.hostarch, r.id
FROM depstate AS d
JOIN buildrequests AS r
- ON ? = ifnull(r.buildarch, d.buildarch)
+ ON d.buildarch = ifnull(r.buildarch, d.buildarch)
AND d.hostarch = ifnull(r.hostarch, d.hostarch)
AND d.source = r.source
JOIN depcheck
- ON d.hostarch = depcheck.architecture
- WHERE d.satisfiable = 1 AND depcheck.giveback = 0
+ ON d.buildarch = depcheck.buildarch
+ AND d.hostarch = depcheck.hostarch
+ WHERE d.buildarch = ?
+ AND d.satisfiable = 1
+ AND depcheck.giveback = 0
AND NOT EXISTS (SELECT 1 FROM building
WHERE d.source = building.source
- OR (? = building.buildarch AND
+ OR (d.buildarch = building.buildarch AND
d.hostarch = building.hostarch))
ORDER BY r.priority DESC, r.requesttime ASC, random()
- LIMIT 1;""", (buildarch, buildarch))
+ LIMIT 1;""", (buildarch,))
row = cur.fetchone()
if not row:
cur.execute("""
SELECT source, version, depstate.hostarch, NULL
FROM depstate JOIN depcheck
- ON depstate.hostarch = depcheck.architecture
+ ON depstate.buildarch = depcheck.buildarch
+ AND depstate.hostarch = depcheck.hostarch
WHERE depstate.buildarch = ? AND satisfiable = 1
AND giveback = 0
ORDER BY random() LIMIT 1;""", (buildarch,))
@@ -112,8 +116,8 @@ def main():
(requestid,))
if giveback:
cur.execute("""UPDATE depcheck SET giveback = 1
- WHERE architecture = ?;""",
- (hostarch,))
+ WHERE buildarch = ? AND architecture = ?;""",
+ (buildarch, hostarch,))
finally:
with contextlib.closing(db.cursor()) as cur:
cur.execute("DELETE FROM building WHERE pid = ?;", (os.getpid(),))