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
					
				
					 1 changed files with 3 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -674,7 +674,7 @@ sub SQLSetBounds {
 | 
			
		|||
### OUT: SQL code to become part of a WHERE or HAVING clause
 | 
			
		||||
  my ($Type,$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 ".
 | 
			
		||||
             "$UppBound, exchanging boundaries.");
 | 
			
		||||
    ($LowBound,$UppBound) = ($UppBound,$LowBound);
 | 
			
		||||
| 
						 | 
				
			
			@ -690,7 +690,7 @@ sub SQLSetBounds {
 | 
			
		|||
  } elsif ($Type eq 'sum') {
 | 
			
		||||
    $WhereHavingFunction = 'SUM(postings)'
 | 
			
		||||
  }
 | 
			
		||||
  $LowBound = sprintf('%s >= '.$LowBound,$WhereHavingFunction) if ($LowBound);
 | 
			
		||||
  $LowBound = sprintf('%s >= '.$LowBound,$WhereHavingFunction) if defined($LowBound);
 | 
			
		||||
  # set $LowBound to SQL statement:
 | 
			
		||||
  # 'WHERE postings <=', 'HAVING MAX(postings) <=' or 'HAVING AVG(postings) <='
 | 
			
		||||
  if ($Type eq 'level') {
 | 
			
		||||
| 
						 | 
				
			
			@ -700,7 +700,7 @@ sub SQLSetBounds {
 | 
			
		|||
  } elsif ($Type eq 'sum') {
 | 
			
		||||
    $WhereHavingFunction = 'SUM(postings)'
 | 
			
		||||
  }
 | 
			
		||||
  $UppBound = sprintf('%s <= '.$UppBound,$WhereHavingFunction) if ($UppBound);
 | 
			
		||||
  $UppBound = sprintf('%s <= '.$UppBound,$WhereHavingFunction) if defined($UppBound);
 | 
			
		||||
  return ($LowBound,$UppBound);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue