summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorterry%mozilla.org <>2000-01-11 09:26:21 +0100
committerterry%mozilla.org <>2000-01-11 09:26:21 +0100
commit09035a1555ac79a74a3c40631701ae35dcd7f9fd (patch)
tree85402abccef2fe581b4726f68abf8bdd14c9c346
parente7209209607207b3289c8e535d8e7504222352fa (diff)
downloadbugzilla-09035a1555ac79a74a3c40631701ae35dcd7f9fd.tar.gz
bugzilla-09035a1555ac79a74a3c40631701ae35dcd7f9fd.tar.xz
Worked around bug in older versions of MySQL that caused a report of
one bug matching a keyword when there really are zero.
-rwxr-xr-xdescribekeywords.cgi11
-rwxr-xr-xeditkeywords.cgi12
2 files changed, 18 insertions, 5 deletions
diff --git a/describekeywords.cgi b/describekeywords.cgi
index 4da535c7c..bddf3b423 100755
--- a/describekeywords.cgi
+++ b/describekeywords.cgi
@@ -41,14 +41,19 @@ print qq{
};
SendSQL("SELECT keyworddefs.name, keyworddefs.description,
- COUNT(keywords.bug_id)
+ COUNT(keywords.bug_id), keywords.bug_id
FROM keyworddefs LEFT JOIN keywords ON keyworddefs.id=keywords.keywordid
GROUP BY keyworddefs.id
ORDER BY keyworddefs.name");
while (MoreSQLData()) {
- my ($name, $description, $bugs) = FetchSQLData();
- if ($bugs) {
+ my ($name, $description, $bugs, $onebug) = FetchSQLData();
+ if ($bugs && $onebug) {
+ # This 'onebug' stuff is silly hackery for old versions of
+ # MySQL that seem to return a count() of 1 even if there are
+ # no matching. So, we ask for an actual bug number. If it
+ # can't find any bugs that match the keyword, then we set the
+ # count to be zero, ignoring what it had responded.
my $q = url_quote($name);
$bugs = qq{<A HREF="buglist.cgi?keywords=$q">$bugs</A>};
} else {
diff --git a/editkeywords.cgi b/editkeywords.cgi
index 03525f725..dcb72ae2e 100755
--- a/editkeywords.cgi
+++ b/editkeywords.cgi
@@ -135,14 +135,22 @@ if ($action eq "") {
</TR>
};
SendSQL("SELECT keyworddefs.id, keyworddefs.name, keyworddefs.description,
- COUNT(keywords.bug_id)
+ COUNT(keywords.bug_id), keywords.bug_id
FROM keyworddefs LEFT JOIN keywords ON keyworddefs.id = keywords.keywordid
GROUP BY keyworddefs.id
ORDER BY keyworddefs.name");
while (MoreSQLData()) {
- my ($id, $name, $description, $bugs) = FetchSQLData();
+ my ($id, $name, $description, $bugs, $onebug) = FetchSQLData();
$description ||= "<FONT COLOR=\"red\">missing</FONT>";
$bugs ||= 'none';
+ if (!$onebug) {
+ # This is silly hackery for old versions of MySQL that seem to
+ # return a count() of 1 even if there are no matching. So, we
+ # ask for an actual bug number. If it can't find any bugs that
+ # match the keyword, then we set the count to be zero, ignoring
+ # what it had responded.
+ $bugs = 'none';
+ }
print qq{
<TR>
<TH VALIGN="top"><A HREF="editkeywords.cgi?action=edit&id=$id">$name</TH>