From 8ef93208df4b0c83acb4d24772b7af062d36ec78 Mon Sep 17 00:00:00 2001 From: "mkanat%kerio.com" <> Date: Sat, 2 Jul 2005 12:23:27 +0000 Subject: Bug 289042: Implicit joins should be replaced by explicit joins - installment B Patch By Max Kanat-Alexander r=LpSolit, r=joel, a=justdave --- Bugzilla/Bug.pm | 16 ++++++++++------ Bugzilla/Flag.pm | 22 ++++++++++++---------- Bugzilla/FlagType.pm | 6 +++--- 3 files changed, 25 insertions(+), 19 deletions(-) (limited to 'Bugzilla') diff --git a/Bugzilla/Bug.pm b/Bugzilla/Bug.pm index 39864d252..675c2ec15 100755 --- a/Bugzilla/Bug.pm +++ b/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/Bugzilla/Flag.pm b/Bugzilla/Flag.pm index 765ad9afa..464ddffaf 100644 --- a/Bugzilla/Flag.pm +++ b/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/Bugzilla/FlagType.pm b/Bugzilla/FlagType.pm index fdf790e75..ceeb9a38a 100644 --- a/Bugzilla/FlagType.pm +++ b/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 -- cgit v1.2.3-24-g4f1b