From 631752615cb0c9302d6a39b7728ae9bb0b65fe58 Mon Sep 17 00:00:00 2001 From: "jocuri%softhome.net" <> Date: Fri, 31 Dec 2004 15:52:59 +0000 Subject: [PATCH] Patch for bug 275523: Replace INNER JOIN in flag searches with LEFT JOIN; patch by me, r=joel, a=justdave. --- Bugzilla/Search.pm | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/Bugzilla/Search.pm b/Bugzilla/Search.pm index 430f98a328..9570a709de 100644 --- a/Bugzilla/Search.pm +++ b/Bugzilla/Search.pm @@ -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"; }, -- 2.47.2