]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Patch for bug 275523: Replace INNER JOIN in flag searches with LEFT JOIN; patch by...
authorjocuri%softhome.net <>
Fri, 31 Dec 2004 15:52:59 +0000 (15:52 +0000)
committerjocuri%softhome.net <>
Fri, 31 Dec 2004 15:52:59 +0000 (15:52 +0000)
Bugzilla/Search.pm

index 430f98a328d8908372c7b7ec734535a79059b6a4..9570a709de374e75ce5186228bc122149dc936a5 100644 (file)
@@ -624,17 +624,21 @@ sub init {
              }
          },
          "^requestees.login_name," => sub {
-             push(@supptables, "flags flags_$chartid");
-             push(@wherepart, "bugs.bug_id = flags_$chartid.bug_id");
-             push(@supptables, "profiles requestees_$chartid");
-             push(@wherepart, "flags_$chartid.requestee_id = requestees_$chartid.userid");
+             my $flags = "flags_$chartid";
+             push(@supptables, "LEFT JOIN flags $flags " .
+                               "ON bugs.bug_id = $flags.bug_id " .
+                               "AND $flags.is_active = 1");
+             push(@supptables, "LEFT JOIN profiles requestees_$chartid " .
+                               "ON $flags.requestee_id = requestees_$chartid.userid");
              $f = "requestees_$chartid.login_name";
          },
          "^setters.login_name," => sub {
-             push(@supptables, "flags flags_$chartid");
-             push(@wherepart, "bugs.bug_id = flags_$chartid.bug_id");
-             push(@supptables, "profiles setters_$chartid");
-             push(@wherepart, "flags_$chartid.setter_id = setters_$chartid.userid");
+             my $flags = "flags_$chartid";
+             push(@supptables, "LEFT JOIN flags $flags " .
+                               "ON bugs.bug_id = $flags.bug_id " .
+                               "AND $flags.is_active = 1");
+             push(@supptables, "LEFT JOIN profiles setters_$chartid " .
+                               "ON $flags.setter_id = setters_$chartid.userid");
              $f = "setters_$chartid.login_name";
          },