recasting as a wide filter:
with ss as (select * from structuralsubscription where subscriber=343381)
SELECT distinct BugTask.bug FROM BugTask inner join bug on bug.id=bugtask.bug LEFT JOIN Product ON BugTask.product = Product.id AND Product.active left join ss ss1 on BugTask.product = ss1.product left join ss ss2 on BugTask.productseries = ss2.productseries left join ss ss3 on Product.project = ss3.project left join ss ss4 on BugTask.distribution = ss4.distribution
AND (BugTask.sourcepackagename = ss4.sourcepackagename
OR ss4.sourcepackagename IS NULL) left join ss ss5 on BugTask.distroseries = ss5.distroseries left join ss ss6 on BugTask.milestone = ss6.milestone
WHERE ((BugTask.status = 10) OR (BugTask.status = 15) OR (BugTask.status = 20) OR (BugTask.status = 21) OR (BugTask.status = 22) OR (BugTask.status = 25))
AND Bug.duplicateof IS NULL
AND Bug.latest_patch_uploaded IS NOT NULL
AND Bug.private = FALSE
AND (Bugtask.product IS NULL
OR Product.active = TRUE)
AND null_count(ARRAY[ss1.id, ss2.id, ss3.id, ss4.id, ss5.id, ss6.id]) < 6;
recasting as a wide filter: ription where subscriber=343381) productseries = ss2.productseries left join ss ss3 on Product.project = ss3.project left join ss ss4 on BugTask. distribution = ss4.distribution sourcepackagena me = ss4.sourcepacka gename gename IS NULL) left join ss ss5 on BugTask. distroseries = ss5.distroseries left join ss ss6 on BugTask.milestone = ss6.milestone patch_uploaded IS NOT NULL ARRAY[ss1. id, ss2.id, ss3.id, ss4.id, ss5.id, ss6.id]) < 6;
with ss as (select * from structuralsubsc
SELECT distinct BugTask.bug FROM BugTask inner join bug on bug.id=bugtask.bug LEFT JOIN Product ON BugTask.product = Product.id AND Product.active left join ss ss1 on BugTask.product = ss1.product left join ss ss2 on BugTask.
AND (BugTask.
OR ss4.sourcepacka
WHERE ((BugTask.status = 10) OR (BugTask.status = 15) OR (BugTask.status = 20) OR (BugTask.status = 21) OR (BugTask.status = 22) OR (BugTask.status = 25))
AND Bug.duplicateof IS NULL
AND Bug.latest_
AND Bug.private = FALSE
AND (Bugtask.product IS NULL
OR Product.active = TRUE)
AND null_count(
-> 1.7 seconds. WIN.