127
127
fixed_upstream, milestone;
136
relevant_bug AS (SELECT * FROM bug where duplicateof is NULL),
138
-- (bug.id, tag) for all bug-tag pairs plus (bug.id, NULL) for all bugs
140
SELECT relevant_bug.id, NULL::text AS tag FROM relevant_bug
142
SELECT relevant_bug.id, tag
143
FROM relevant_bug INNER JOIN bugtag ON relevant_bug.id=bugtag.bug),
144
-- (bug.id, NULL) for all public bugs + (bug.id, viewer) for all
145
-- (subscribers+assignee) on private bugs
147
SELECT relevant_bug.id, NULL::integer AS person
148
FROM relevant_bug WHERE NOT relevant_bug.private
150
SELECT relevant_bug.id, assignee AS person
152
INNER JOIN bugtask ON relevant_bug.id=bugtask.bug
153
WHERE relevant_bug.private and bugtask.assignee IS NOT NULL
155
SELECT relevant_bug.id, bugsubscription.person
156
FROM relevant_bug INNER JOIN bugsubscription
157
ON bugsubscription.bug=relevant_bug.id WHERE relevant_bug.private),
159
fixed_upstream_tasks AS (
160
SELECT BugTask.id, BugTask.bug FROM BugTask
162
(bugwatch IS NOT NULL AND status IN (17, 25, 30))
164
bugwatch IS NULL AND product IS NOT NULL
165
AND status IN (25, 30)))),
167
-- (bugtask.(bug, product, productseries, distribution, distroseries,
168
-- sourcepackagename, status, milestone) for all bugs + the same with
169
-- sourcepackage squashed to NULL)
172
bug, product, productseries, distribution, distroseries,
173
sourcepackagename, status, milestone, importance,
175
SELECT TRUE FROM fixed_upstream_tasks
177
BugTask.bug = fixed_upstream_tasks.bug
178
AND BugTask.id <> fixed_upstream_tasks.id
183
bug, product, productseries, distribution, distroseries,
184
sourcepackagename, milestone)
185
bug, product, productseries, distribution, distroseries,
186
NULL::integer as sourcepackagename,
187
status, milestone, importance,
189
SELECT TRUE FROM fixed_upstream_tasks
191
BugTask.bug = fixed_upstream_tasks.bug
192
AND BugTask.id <> fixed_upstream_tasks.id
194
FROM bugtask where sourcepackagename IS NOT NULL)
198
count(*), product, productseries, distribution, distroseries,
199
sourcepackagename, person, tag, status, milestone, importance,
200
latest_patch_uploaded IS NOT NULL AS has_patch, fixed_upstream
202
INNER JOIN bug_tags ON relevant_bug.id=bug_tags.id
203
INNER JOIN bug_viewers ON relevant_bug.id=bug_viewers.id
204
INNER JOIN tasks on tasks.bug=relevant_bug.id
206
product, productseries, distribution, distroseries,
207
sourcepackagename, person, tag, status, milestone,
208
importance, has_patch, fixed_upstream;
211
130
-- Rebuild indexes.
212
131
CREATE INDEX bugsummary__full__idx ON BugSummary (
213
132
tag, status, product, productseries, distribution,