From cc785b8edb84cc46f578e863d7929655a91eec41 Mon Sep 17 00:00:00 2001 From: "mkanat%kerio.com" <> Date: Thu, 17 Mar 2005 07:50:59 +0000 Subject: Bug 174295: ANSI SQL requires all columns in SELECT to be in GROUP BY, unless they are in "aggregate" functions Patch By Tomas Kopal r=joel, a=myk --- Bugzilla/User.pm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'Bugzilla/User.pm') diff --git a/Bugzilla/User.pm b/Bugzilla/User.pm index fabffa621..6f2c31d60 100644 --- a/Bugzilla/User.pm +++ b/Bugzilla/User.pm @@ -352,7 +352,10 @@ sub can_see_bug { ON bugs.bug_id = bug_group_map.bug_id AND bug_group_map.group_ID NOT IN(" . join(',',(-1, values(%{$self->groups}))) . - ") WHERE bugs.bug_id = ? GROUP BY bugs.bug_id"); + ") WHERE bugs.bug_id = ? " . + $dbh->sql_group_by('bugs.bug_id', 'reporter, ' . + 'assigned_to, qa_contact, reporter_accessible, ' . + 'cclist_accessible')); } $sth->execute($bugid); my ($reporter, $owner, $qacontact, $reporter_access, $cclist_access, @@ -948,13 +951,14 @@ sub get_userlist { return $self->{'userlist'} if defined $self->{'userlist'}; + my $dbh = Bugzilla->dbh; my $query = "SELECT DISTINCT login_name, realname,"; if (&::Param('usevisibilitygroups')) { $query .= " COUNT(group_id) "; } else { $query .= " 1 "; } - $query .= "FROM profiles "; + $query .= "FROM profiles "; if (&::Param('usevisibilitygroups')) { $query .= "LEFT JOIN user_group_map " . "ON user_group_map.user_id = userid AND isbless = 0 " . @@ -962,9 +966,9 @@ sub get_userlist { join(', ', (-1, @{$self->visible_groups_inherited})) . ") " . "AND grant_type <> " . GRANT_DERIVED; } - $query .= " WHERE disabledtext = '' GROUP BY userid"; + $query .= " WHERE disabledtext = '' "; + $query .= $dbh->sql_group_by('userid', 'login_name, realname'); - my $dbh = Bugzilla->dbh; my $sth = $dbh->prepare($query); $sth->execute; -- cgit v1.2.3-24-g4f1b