]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 289043: Implicit joins should be replaced by explicit joins - installment C
authormkanat%kerio.com <>
Tue, 3 May 2005 01:52:02 +0000 (01:52 +0000)
committermkanat%kerio.com <>
Tue, 3 May 2005 01:52:02 +0000 (01:52 +0000)
Patch By Tomas Kopal <Tomas.Kopal@altap.cz> r=joel, a=justdave

editproducts.cgi
editusers.cgi
globals.pl
post_bug.cgi

index ac54ab51724653618561e674e381044b7f222d7f..be0842912ebfca487163dd26dbfb49f7dfb87765 100755 (executable)
@@ -336,14 +336,14 @@ if (!$action && !$product) {
                  FROM products";
 
     if (Param('useclassification')) {
-        $query .= ", classifications";
+        $query .= " INNER JOIN classifications " .
+                  "ON classifications.id = products.classification_id";
     }
 
     $query .= " LEFT JOIN bugs ON products.id = bugs.product_id";
 
     if (Param('useclassification')) {
-        $query .= " WHERE classifications.name = ? " .
-            " AND classifications.id = products.classification_id";
+        $query .= " WHERE classifications.name = ? ";
 
         # trick_taint is OK because we use this in a placeholder in a SELECT
         trick_taint($classification);
@@ -1038,14 +1038,15 @@ if ($action eq 'updategroupcontrols') {
         my @mandatory_groups = ();
         if (@now_mandatory) {
             SendSQL("SELECT groups.name, COUNT(bugs.bug_id) 
-                     FROM bugs, groups
-                     LEFT JOIN bug_group_map
-                     ON bug_group_map.group_id = groups.id
-                     AND bug_group_map.bug_id = bugs.bug_id
-                     WHERE groups.id IN(" . join(', ', @now_mandatory) . ")
-                     AND bugs.product_id = $product_id
-                     AND bug_group_map.bug_id IS NULL " .
-                    $dbh->sql_group_by('groups.name'));
+                       FROM bugs
+                  LEFT JOIN bug_group_map
+                         ON bug_group_map.bug_id = bugs.bug_id
+                 INNER JOIN groups
+                         ON bug_group_map.group_id = groups.id
+                      WHERE groups.id IN(" . join(', ', @now_mandatory) . ")
+                        AND bugs.product_id = $product_id
+                        AND bug_group_map.bug_id IS NULL " .
+                        $dbh->sql_group_by('groups.name'));
             while (MoreSQLData()) {
                 my ($groupname, $bugcount) = FetchSQLData();
                 my %g = ();
index 9c7a79397cf690833d3fd901fc38ca8534ca3dd5..74ad463fdfcae0e276c3b897e9355230ec79745b 100755 (executable)
@@ -622,13 +622,14 @@ sub groupsUserMayBless {
         $connector = 'WHERE';
     } else {
         $query = qq{SELECT DISTINCT $fieldList
-                    FROM groups, user_group_map AS ugm
+                    FROM groups
+                    LEFT JOIN user_group_map AS ugm
+                           ON groups.id = ugm.group_id
                     LEFT JOIN group_group_map AS ggm
                            ON ggm.member_id = ugm.group_id
                           AND ggm.grant_type = ?
                     WHERE user_id = ?
-                      AND ((id = group_id AND isbless = 1) OR
-                           (id = grantor_id))
+                      AND (ugm.isbless = 1 OR groups.id = ggm.grantor_id)
                    };
         @bindValues = (GROUP_BLESS, $userid);
         $connector = 'AND';
index 273f677d4c78fd3fee6bae8a3e188906ffbd0767..d0e819f02497f58ec6478e2c6a3bdc02b16e1bcf 100644 (file)
@@ -171,13 +171,14 @@ sub GenerateVersionTable {
 
     my $mpart = $dotargetmilestone ? ", milestoneurl" : "";
 
-    SendSQL("select name, description from classifications ORDER BY name");
+    SendSQL("SELECT name, description FROM classifications ORDER BY name");
     while (@line = FetchSQLData()) {
         my ($n, $d) = (@line);
         $::classdesc{$n} = $d;
     }
 
-    SendSQL("select name, description, votesperuser, disallownew$mpart from products ORDER BY name");
+    SendSQL("SELECT name, description, votesperuser, disallownew$mpart " .
+            "FROM products ORDER BY name");
     while (@line = FetchSQLData()) {
         my ($p, $d, $votesperuser, $dis, $u) = (@line);
         $::proddesc{$p} = $d;
@@ -604,7 +605,7 @@ sub DBID_to_name {
     }
     if (!defined $::cachedNameArray{$id}) {
         PushGlobalSQLState();
-        SendSQL("select login_name from profiles where userid = $id");
+        SendSQL("SELECT login_name FROM profiles WHERE userid = $id");
         my $r = FetchOneColumn();
         PopGlobalSQLState();
         if (!defined $r || $r eq "") {
index 0233fad83667407bb28bbcbed6a2a95cd741702c..9bc87e593c36168d20dc06797ce7b8a71b4276ce 100755 (executable)
@@ -288,7 +288,7 @@ if (UserInGroup("editbugs") && defined($cgi->param('dependson'))) {
         my @stack = @{$deps{$target}};
         while (@stack) {
             my $i = shift @stack;
-            SendSQL("select $target from dependencies where $me = " .
+            SendSQL("SELECT $target FROM dependencies WHERE $me = " .
                     SqlQuote($i));
             while (MoreSQLData()) {
                 my $t = FetchOneColumn();
@@ -439,7 +439,7 @@ if (Param("insidergroup") && UserInGroup(Param("insidergroup"))) {
 }
 
 SendSQL("INSERT INTO longdescs (bug_id, who, bug_when, thetext, isprivate) 
-         VALUES ($id, " . SqlQuote($user->id) . ", $sql_timestamp, " .\r
+         VALUES ($id, " . SqlQuote($user->id) . ", $sql_timestamp, " .
         SqlQuote($comment) . ", $privacy)");
 
 # Insert the cclist into the database