Bug 257351: collectstats.pl dies if an invalid series is defined - Patch by Frédéric Buclin <LpSolit@gmail.com> r/a=mkanat

git-svn-id: svn://10.0.0.236/trunk@232393 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
lpsolit%gmail.com
2007-08-20 18:11:47 +00:00
parent 1e5e795a10
commit 64255ff8cb
2 changed files with 10 additions and 13 deletions

View File

@@ -324,7 +324,7 @@ sub sql_group_by {
my ($self, $needed_columns, $optional_columns) = @_;
my $expression = "GROUP BY $needed_columns";
$expression .= ", " . $optional_columns if defined($optional_columns);
$expression .= ", " . $optional_columns if $optional_columns;
return $expression;
}

View File

@@ -579,22 +579,19 @@ sub CollectSeriesData {
# We set up the user for Search.pm's permission checking - each series
# runs with the permissions of its creator.
my $user = new Bugzilla::User($serieses->{$series_id}->{'creator'});
my $cgi = new Bugzilla::CGI($serieses->{$series_id}->{'query'});
my $search = new Bugzilla::Search('params' => $cgi,
'fields' => ["bugs.bug_id"],
'user' => $user);
my $sql = $search->getSQL();
my $data;
# We can't die if we get dodgy SQL back for whatever reason, so we
# eval() this and, if it fails, just ignore it and carry on.
# One day we might even log an error.
eval {
# Do not die if Search->new() detects invalid data, such as an obsolete
# login name or a renamed product or component, etc.
eval {
my $search = new Bugzilla::Search('params' => $cgi,
'fields' => ["bugs.bug_id"],
'user' => $user);
my $sql = $search->getSQL();
$data = $shadow_dbh->selectall_arrayref($sql);
};
if (!$@) {
# We need to count the returned rows. Without subselects, we can't
# do this directly in the SQL for all queries. So we do it by hand.