diff --git a/webtools/bugzilla/Bugzilla/Bug.pm b/webtools/bugzilla/Bugzilla/Bug.pm index 39864d252a41..675c2ec1567f 100644 --- a/webtools/bugzilla/Bugzilla/Bug.pm +++ b/webtools/bugzilla/Bugzilla/Bug.pm @@ -163,12 +163,16 @@ sub initBug { reporter_accessible, cclist_accessible, estimated_time, remaining_time, " . $dbh->sql_date_format('deadline', '%Y-%m-%d') . " - FROM bugs LEFT JOIN votes using(bug_id), - classifications, products, components - WHERE bugs.bug_id = ? - AND classifications.id = products.classification_id - AND products.id = bugs.product_id - AND components.id = bugs.component_id " . + FROM bugs + LEFT JOIN votes + USING (bug_id) + INNER JOIN components + ON 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, classifications.name, bugs.product_id, products.name, version, rep_platform, op_sys, bug_status, resolution, priority, diff --git a/webtools/bugzilla/Bugzilla/Flag.pm b/webtools/bugzilla/Bugzilla/Flag.pm index 765ad9afad66..464ddffafc23 100644 --- a/webtools/bugzilla/Bugzilla/Flag.pm +++ b/webtools/bugzilla/Bugzilla/Flag.pm @@ -112,9 +112,9 @@ my @base_columns = Which database(s) is the data coming from? 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, -since tables take multiple separators based on the join type, and therefore -it is not possible to join them later using a single known separator. +(i.e. words like "LEFT OUTER JOIN") before the table name, since tables take +multiple separators based on the join type, and therefore it is not possible +to join them later using a single known separator. B =back @@ -400,14 +400,16 @@ sub process { # no longer valid. my $flag_ids = $dbh->selectcol_arrayref( "SELECT flags.id - FROM (flags INNER JOIN bugs ON flags.bug_id = bugs.bug_id) - LEFT OUTER JOIN flaginclusions i - ON (flags.type_id = i.type_id + FROM flags + INNER JOIN bugs + 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.component_id = i.component_id OR i.component_id IS NULL)) - WHERE bugs.bug_id = ? - AND flags.is_active = 1 - AND i.type_id IS NULL", + AND (bugs.component_id = i.component_id OR i.component_id IS NULL) + WHERE bugs.bug_id = ? + AND flags.is_active = 1 + AND i.type_id IS NULL", undef, $bug_id); foreach my $flag_id (@$flag_ids) { clear($flag_id) } diff --git a/webtools/bugzilla/Bugzilla/FlagType.pm b/webtools/bugzilla/Bugzilla/FlagType.pm index fdf790e7580a..ceeb9a38a85e 100644 --- a/webtools/bugzilla/Bugzilla/FlagType.pm +++ b/webtools/bugzilla/Bugzilla/FlagType.pm @@ -101,9 +101,9 @@ my @base_columns = Which database(s) is the data coming from? Note: when adding tables to @base_tables, make sure to include the separator -(i.e. a comma or words like C) before the table name, -since tables take multiple separators based on the join type, and therefore -it is not possible to join them later using a single known separator. +(i.e. words like "LEFT OUTER JOIN") before the table name, since tables take +multiple separators based on the join type, and therefore it is not possible +to join them later using a single known separator. B =back