Accept an upper/lower boundary of 0 (zero).
The code checks if a boundary is set by looking for a TRUE value, but 0 is FALSE. It has to check whether the variable is set, i.e. defined(), instead. Fixes #56. Signed-off-by: Thomas Hochstein <thh@inter.net>
This commit is contained in:
parent
91c674c4fe
commit
b5ef572664
|
@ -674,7 +674,7 @@ sub SQLSetBounds {
|
||||||
### OUT: SQL code to become part of a WHERE or HAVING clause
|
### OUT: SQL code to become part of a WHERE or HAVING clause
|
||||||
my ($Type,$LowBound,$UppBound) = @_;
|
my ($Type,$LowBound,$UppBound) = @_;
|
||||||
($LowBound,$UppBound) = SQLCheckNumber($LowBound,$UppBound);
|
($LowBound,$UppBound) = SQLCheckNumber($LowBound,$UppBound);
|
||||||
if($LowBound and $UppBound and $LowBound > $UppBound) {
|
if($LowBound and defined($UppBound) and $LowBound > $UppBound) {
|
||||||
&Bleat(1,"Lower boundary $LowBound is larger than Upper boundary ".
|
&Bleat(1,"Lower boundary $LowBound is larger than Upper boundary ".
|
||||||
"$UppBound, exchanging boundaries.");
|
"$UppBound, exchanging boundaries.");
|
||||||
($LowBound,$UppBound) = ($UppBound,$LowBound);
|
($LowBound,$UppBound) = ($UppBound,$LowBound);
|
||||||
|
@ -690,7 +690,7 @@ sub SQLSetBounds {
|
||||||
} elsif ($Type eq 'sum') {
|
} elsif ($Type eq 'sum') {
|
||||||
$WhereHavingFunction = 'SUM(postings)'
|
$WhereHavingFunction = 'SUM(postings)'
|
||||||
}
|
}
|
||||||
$LowBound = sprintf('%s >= '.$LowBound,$WhereHavingFunction) if ($LowBound);
|
$LowBound = sprintf('%s >= '.$LowBound,$WhereHavingFunction) if defined($LowBound);
|
||||||
# set $LowBound to SQL statement:
|
# set $LowBound to SQL statement:
|
||||||
# 'WHERE postings <=', 'HAVING MAX(postings) <=' or 'HAVING AVG(postings) <='
|
# 'WHERE postings <=', 'HAVING MAX(postings) <=' or 'HAVING AVG(postings) <='
|
||||||
if ($Type eq 'level') {
|
if ($Type eq 'level') {
|
||||||
|
@ -700,7 +700,7 @@ sub SQLSetBounds {
|
||||||
} elsif ($Type eq 'sum') {
|
} elsif ($Type eq 'sum') {
|
||||||
$WhereHavingFunction = 'SUM(postings)'
|
$WhereHavingFunction = 'SUM(postings)'
|
||||||
}
|
}
|
||||||
$UppBound = sprintf('%s <= '.$UppBound,$WhereHavingFunction) if ($UppBound);
|
$UppBound = sprintf('%s <= '.$UppBound,$WhereHavingFunction) if defined($UppBound);
|
||||||
return ($LowBound,$UppBound);
|
return ($LowBound,$UppBound);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue