From: gerv%gerv.net <> Date: Sat, 10 Aug 2002 16:53:29 +0000 (+0000) Subject: Bug 155584 - Opening duplicates.cgi with no frequent bugs causes SQL syntax error... X-Git-Tag: bugzilla-2.17.1~209 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a52f0b4135b629b9651145ad51bc2791b7feaeac;p=thirdparty%2Fbugzilla.git Bug 155584 - Opening duplicates.cgi with no frequent bugs causes SQL syntax error. Patch by gerv; r=bbaetz. --- diff --git a/duplicates.cgi b/duplicates.cgi index 52e611cbf5..3d08753130 100755 --- a/duplicates.cgi +++ b/duplicates.cgi @@ -135,48 +135,50 @@ if (!tie(%before, 'AnyDBM_File', "data/duplicates/dupes$whenever", $dobefore = 1; } -# Don't add CLOSED, and don't add VERIFIED unless they are INVALID or -# WONTFIX. We want to see VERIFIED INVALID and WONTFIX because common -# "bugs" which aren't bugs end up in this state. -my $query = " - SELECT bugs.bug_id, component, bug_severity, op_sys, target_milestone, - short_desc, bug_status, resolution - FROM bugs - WHERE (bug_status != 'CLOSED') - AND ((bug_status = 'VERIFIED' AND resolution IN ('INVALID', 'WONTFIX')) - OR (bug_status != 'VERIFIED')) - AND bugs.bug_id IN (" . join(", ", keys %count) . ")"; - -# Limit to a single product if requested -$query .= (" AND product = " . SqlQuote($product)) if $product; - -SendSQL(SelectVisible($query, - $userid, - $usergroupset)); - my @bugs; my @bug_ids; -while (MoreSQLData()) { - # Note: maximum row count is dealt with in the template. - - my ($id, $component, $bug_severity, $op_sys, $target_milestone, - $short_desc, $bug_status, $resolution) = FetchSQLData(); - - # Limit to open bugs only if requested - next if $openonly && ($resolution ne ""); - - push (@bugs, { id => $id, - count => $count{$id}, - delta => $delta{$id}, - component => $component, - bug_severity => $bug_severity, - op_sys => $op_sys, - target_milestone => $target_milestone, - short_desc => $short_desc, - bug_status => $bug_status, - resolution => $resolution }); - push (@bug_ids, $id); +if (scalar(%count)) { + # Don't add CLOSED, and don't add VERIFIED unless they are INVALID or + # WONTFIX. We want to see VERIFIED INVALID and WONTFIX because common + # "bugs" which aren't bugs end up in this state. + my $query = " + SELECT bugs.bug_id, component, bug_severity, op_sys, target_milestone, + short_desc, bug_status, resolution + FROM bugs + WHERE (bug_status != 'CLOSED') + AND ((bug_status = 'VERIFIED' AND resolution IN ('INVALID', 'WONTFIX')) + OR (bug_status != 'VERIFIED')) + AND bugs.bug_id IN (" . join(", ", keys %count) . ")"; + + # Limit to a single product if requested + $query .= (" AND product = " . SqlQuote($product)) if $product; + + SendSQL(SelectVisible($query, + $userid, + $usergroupset)); + + while (MoreSQLData()) { + # Note: maximum row count is dealt with in the template. + + my ($id, $component, $bug_severity, $op_sys, $target_milestone, + $short_desc, $bug_status, $resolution) = FetchSQLData(); + + # Limit to open bugs only if requested + next if $openonly && ($resolution ne ""); + + push (@bugs, { id => $id, + count => $count{$id}, + delta => $delta{$id}, + component => $component, + bug_severity => $bug_severity, + op_sys => $op_sys, + target_milestone => $target_milestone, + short_desc => $short_desc, + bug_status => $bug_status, + resolution => $resolution }); + push (@bug_ids, $id); + } } $vars->{'bugs'} = \@bugs; diff --git a/template/en/default/reports/duplicates-table.html.tmpl b/template/en/default/reports/duplicates-table.html.tmpl index 83499b377d..ae9f074a9b 100644 --- a/template/en/default/reports/duplicates-table.html.tmpl +++ b/template/en/default/reports/duplicates-table.html.tmpl @@ -44,100 +44,104 @@ [%# *** Column Headers *** %] -
|
- |
- [% END %]
-
+ |
+ [% END %]
+
-[% IF reverse %]
- [% bugs = sortedbugs.reverse %]
-[% ELSE %]
- [% bugs = sortedbugs %]
-[% END %]
+ [% IF NOT sortby %]
+ [% sortby = "count"; reverse = "1" %]
+ [% END %]
-[%# *** Buglist *** %]
+ [% IF sortby == "id" OR sortby == "count" OR sortby == "delta" %]
+ [%# Numeric sort %]
+ [% sortedbugs = bugs.nsort(sortby) %]
+ [% ELSE %]
+ [% sortedbugs = bugs.sort(sortby) %]
+ [% END %]
-[%# We need to keep track of the bug IDs we are actually displaying, because
- # if the user decides to sort the visible list, we need to know what that
- # list actually is. %]
-[% vis_bug_ids = [] %]
+ [% IF reverse %]
+ [% bugs = sortedbugs.reverse %]
+ [% ELSE %]
+ [% bugs = sortedbugs %]
+ [% END %]
-[% FOREACH bug = bugs %]
- [% LAST IF loop.index() >= maxrows %]
- [% vis_bug_ids.push(bug.id) %]
+ [%# *** Buglist *** %]
- ||||
|
- |
+ [%# We need to keep track of the bug IDs we are actually displaying, because
+ # if the user decides to sort the visible list, we need to know what that
+ # list actually is. %]
+ [% vis_bug_ids = [] %]
-
- |
+ [% FOREACH bug = bugs %]
+ [% LAST IF loop.index() >= maxrows %]
+ [% vis_bug_ids.push(bug.id) %]
- [% IF dobefore %]
- ||||
|
+ |
- [% bug.component %] | -[% bug.short_desc FILTER html %] | -
+ |
+
+ [% IF dobefore %]
+ [% bug.component %] | +[% bug.short_desc FILTER html %] | + + [% END %] -