From: lpsolit%gmail.com <> Date: Fri, 23 Dec 2005 09:52:48 +0000 (+0000) Subject: Bug 313571: Duplicate "Saved Search" entries in Preferences when Saved Search is... X-Git-Tag: bugzilla-2.20.1~50 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0634ccfc365b5c656d70851816cc3af865152a3f;p=thirdparty%2Fbugzilla.git Bug 313571: Duplicate "Saved Search" entries in Preferences when Saved Search is also used for whine - Patch by Justin C. De Vries r=LpSolit a=justdave --- diff --git a/Bugzilla/User.pm b/Bugzilla/User.pm index 85af4fd4df..470d577d28 100644 --- a/Bugzilla/User.pm +++ b/Bugzilla/User.pm @@ -25,6 +25,7 @@ # Shane H. W. Travis # Max Kanat-Alexander # Gervase Markham +# Justin C. De Vries ################################################################################ # Module Initialization @@ -228,34 +229,28 @@ sub queries { return [] unless $self->id; my $dbh = Bugzilla->dbh; - my $sth = $dbh->prepare(q{ SELECT - DISTINCT name, query, linkinfooter, - CASE WHEN whine_queries.id IS NOT NULL - THEN 1 ELSE 0 END, - UPPER(name) AS uppername - FROM namedqueries - LEFT JOIN whine_events - ON whine_events.owner_userid = - namedqueries.userid - LEFT JOIN whine_queries - ON whine_queries.query_name = - namedqueries.name - AND whine_queries.eventid = - whine_events.id - WHERE namedqueries.userid=? - ORDER BY uppername}); - $sth->execute($self->{id}); - - my @queries; - while (my $row = $sth->fetch) { - push (@queries, { - name => $row->[0], - query => $row->[1], - linkinfooter => $row->[2], - usedinwhine => $row->[3], - }); + my $used_in_whine_ref = $dbh->selectcol_arrayref(q{ + SELECT DISTINCT query_name + FROM whine_events we + INNER JOIN whine_queries wq + ON we.id = wq.eventid + WHERE we.owner_userid = ?}, undef, $self->{id}); + + my $queries_ref = $dbh->selectall_arrayref(q{ + SELECT name, query, linkinfooter + FROM namedqueries + WHERE userid = ? + ORDER BY UPPER(name)},{'Slice'=>{}}, $self->{id}); + + foreach my $name (@$used_in_whine_ref) { + foreach my $queries_hash (@$queries_ref) { + if ($queries_hash->{name} eq $name) { + $queries_hash->{usedinwhine} = 1; + last; + } + } } - $self->{queries} = \@queries; + $self->{queries} = $queries_ref; return $self->{queries}; }