diff options
-rw-r--r-- | multiarchanalyze.sql | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/multiarchanalyze.sql b/multiarchanalyze.sql index 48e95c9..57f5f9b 100644 --- a/multiarchanalyze.sql +++ b/multiarchanalyze.sql @@ -35,7 +35,8 @@ CREATE VIEW contentconflict AS * provides. */ DROP VIEW IF EXISTS archdepcandidate; CREATE VIEW archdepcandidate AS - SELECT p1.id AS dependerid, p2.id AS dependeeid + SELECT p1.id AS dependerid, p2.id AS dependeeid, + p2.multiarch IS 'same' AS ismasame FROM package AS p1, depends AS d, package AS p2 WHERE p1.id = d.pid AND d.dependee = p2.name @@ -46,7 +47,8 @@ CREATE VIEW archdepcandidate AS OR p2.architecture = 'all' OR p2.architecture = d.archqual) UNION ALL - SELECT p1.id AS dependerid, p2.id AS dependeeid + SELECT p1.id AS dependerid, p2.id AS dependeeid, + p2.multiarch IS 'same' AS ismasame FROM package AS p1, depends AS d, provides AS r, package AS p2 WHERE p1.id = d.pid AND d.dependee = r.provided @@ -87,7 +89,11 @@ CREATE VIEW archpackage AS exists( SELECT 1 FROM package AS p2, archdepcandidate AS c WHERE p2.name = p1.name AND c.dependerid = p2.id) - AS hasarchdeps + AS hasarchdeps, + exists( + SELECT 1 FROM package AS p2, archdepcandidate AS c + WHERE p2.name = p1.name AND c.dependerid = p2.id + AND NOT c.ismasame) AS hasnoncoinstdeps FROM packageapi AS p1 WHERE p1.instances >= 3 AND p1.hasindep = 0; @@ -165,6 +171,7 @@ CREATE VIEW masame_candidate AS SELECT p1.name FROM archpackage AS p1 WHERE p1.multiarch = 'no' AND p1.hasscripts = 0 + AND NOT p1.hasnoncoinstdeps AND NOT EXISTS ( SELECT 1 FROM contentconflict WHERE name1 = p1.name AND name2 = p1.name); |