Commit 8ef93208 authored by mkanat%kerio.com's avatar mkanat%kerio.com

Bug 289042: Implicit joins should be replaced by explicit joins - installment B

Patch By Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, r=joel, a=justdave
parent 8f788c28
...@@ -163,12 +163,16 @@ sub initBug { ...@@ -163,12 +163,16 @@ sub initBug {
reporter_accessible, cclist_accessible, reporter_accessible, cclist_accessible,
estimated_time, remaining_time, " . estimated_time, remaining_time, " .
$dbh->sql_date_format('deadline', '%Y-%m-%d') . " $dbh->sql_date_format('deadline', '%Y-%m-%d') . "
FROM bugs LEFT JOIN votes using(bug_id), FROM bugs
classifications, products, components LEFT JOIN votes
WHERE bugs.bug_id = ? USING (bug_id)
AND classifications.id = products.classification_id INNER JOIN components
AND products.id = bugs.product_id ON components.id = bugs.component_id
AND components.id = bugs.component_id " . INNER JOIN products
ON products.id = bugs.product_id
INNER JOIN classifications
ON classifications.id = products.classification_id
WHERE bugs.bug_id = ? " .
$dbh->sql_group_by('bugs.bug_id', 'alias, products.classification_id, $dbh->sql_group_by('bugs.bug_id', 'alias, products.classification_id,
classifications.name, bugs.product_id, products.name, version, classifications.name, bugs.product_id, products.name, version,
rep_platform, op_sys, bug_status, resolution, priority, rep_platform, op_sys, bug_status, resolution, priority,
......
...@@ -112,9 +112,9 @@ my @base_columns = ...@@ -112,9 +112,9 @@ my @base_columns =
Which database(s) is the data coming from? Which database(s) is the data coming from?
Note: when adding tables to @base_tables, make sure to include the separator Note: when adding tables to @base_tables, make sure to include the separator
(i.e. a comma or words like "LEFT OUTER JOIN") before the table name, (i.e. words like "LEFT OUTER JOIN") before the table name, since tables take
since tables take multiple separators based on the join type, and therefore multiple separators based on the join type, and therefore it is not possible
it is not possible to join them later using a single known separator. to join them later using a single known separator.
B<Used by get, match, sqlify_criteria and perlify_record> B<Used by get, match, sqlify_criteria and perlify_record>
=back =back
...@@ -400,14 +400,16 @@ sub process { ...@@ -400,14 +400,16 @@ sub process {
# no longer valid. # no longer valid.
my $flag_ids = $dbh->selectcol_arrayref( my $flag_ids = $dbh->selectcol_arrayref(
"SELECT flags.id "SELECT flags.id
FROM (flags INNER JOIN bugs ON flags.bug_id = bugs.bug_id) FROM flags
LEFT OUTER JOIN flaginclusions i INNER JOIN bugs
ON (flags.type_id = i.type_id ON flags.bug_id = bugs.bug_id
LEFT JOIN flaginclusions AS i
ON flags.type_id = i.type_id
AND (bugs.product_id = i.product_id OR i.product_id IS NULL) AND (bugs.product_id = i.product_id OR i.product_id IS NULL)
AND (bugs.component_id = i.component_id OR i.component_id IS NULL)) AND (bugs.component_id = i.component_id OR i.component_id IS NULL)
WHERE bugs.bug_id = ? WHERE bugs.bug_id = ?
AND flags.is_active = 1 AND flags.is_active = 1
AND i.type_id IS NULL", AND i.type_id IS NULL",
undef, $bug_id); undef, $bug_id);
foreach my $flag_id (@$flag_ids) { clear($flag_id) } foreach my $flag_id (@$flag_ids) { clear($flag_id) }
......
...@@ -101,9 +101,9 @@ my @base_columns = ...@@ -101,9 +101,9 @@ my @base_columns =
Which database(s) is the data coming from? Which database(s) is the data coming from?
Note: when adding tables to @base_tables, make sure to include the separator Note: when adding tables to @base_tables, make sure to include the separator
(i.e. a comma or words like C<LEFT OUTER JOIN>) before the table name, (i.e. words like "LEFT OUTER JOIN") before the table name, since tables take
since tables take multiple separators based on the join type, and therefore multiple separators based on the join type, and therefore it is not possible
it is not possible to join them later using a single known separator. to join them later using a single known separator.
B<Used by get, match, sqlify_criteria and perlify_record> B<Used by get, match, sqlify_criteria and perlify_record>
=back =back
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment