Bug 286235: Implicit joins should be replaced by explicit joins - installment A

Patch By Tomas Kopal <Tomas.Kopal@altap.cz> r=joel, a=myk


git-svn-id: svn://10.0.0.236/trunk@171610 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
mkanat%kerio.com
2005-04-04 21:52:06 +00:00
parent e7bb9f5e7a
commit 833b2e61f6
18 changed files with 211 additions and 175 deletions

View File

@@ -92,33 +92,34 @@ sub queue {
# so we can display product and component names, and the bug_group_map
# and user_group_map tables to help us weed out secure bugs to which
# the user should not have access.
" FROM flags
LEFT JOIN attachments ON ($attach_join_clause),
flagtypes,
profiles AS requesters
LEFT JOIN profiles AS requestees
ON flags.requestee_id = requestees.userid,
bugs
LEFT JOIN products ON bugs.product_id = products.id
LEFT JOIN components ON bugs.component_id = components.id
LEFT JOIN bug_group_map AS bgmap
ON bgmap.bug_id = bugs.bug_id
LEFT JOIN user_group_map AS ugmap
ON bgmap.group_id = ugmap.group_id
AND ugmap.user_id = $::userid
" FROM flags
LEFT JOIN attachments
ON ($attach_join_clause)
INNER JOIN flagtypes
ON flags.type_id = flagtypes.id
INNER JOIN profiles AS requesters
ON flags.setter_id = requesters.userid
LEFT JOIN profiles AS requestees
ON flags.requestee_id = requestees.userid
INNER JOIN bugs
ON flags.bug_id = bugs.bug_id
LEFT JOIN products
ON bugs.product_id = products.id
LEFT JOIN components
ON bugs.component_id = components.id
LEFT JOIN bug_group_map AS bgmap
ON bgmap.bug_id = bugs.bug_id
LEFT JOIN user_group_map AS ugmap
ON bgmap.group_id = ugmap.group_id
AND ugmap.user_id = $::userid
AND ugmap.isbless = 0
LEFT JOIN cc AS ccmap
ON ccmap.who = $::userid AND ccmap.bug_id = bugs.bug_id
" .
# All of these are inner join clauses. Actual match criteria are added
# in the code below.
" WHERE flags.type_id = flagtypes.id
AND flags.setter_id = requesters.userid
AND flags.bug_id = bugs.bug_id
LEFT JOIN cc AS ccmap
ON ccmap.who = $::userid
AND ccmap.bug_id = bugs.bug_id
";
# Non-deleted flags only
$query .= " AND flags.is_active = 1 ";
$query .= " WHERE flags.is_active = 1 ";
# Limit query to pending requests.
$query .= " AND flags.status = '?' " unless $cgi->param('status');