[COMMIT LOGREPORT] service/all/lib/Lire Average.pm,1.14,1.15

Francis J. Lacoste flacoste at users.sourceforge.net
Wed Jun 15 22:09:16 CEST 2005


Update of /cvsroot/logreport/service/all/lib/Lire
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31888/all/lib/Lire

Modified Files:
	Average.pm 
Log Message:
- lr_count_uniq doesn't make sense when by_fields is a numerical field.


Index: Average.pm
===================================================================
RCS file: /cvsroot/logreport/service/all/lib/Lire/Average.pm,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- Average.pm	14 Jun 2005 19:47:37 -0000	1.14
+++ Average.pm	15 Jun 2005 20:09:14 -0000	1.15
@@ -177,7 +177,7 @@
 
     my $sum_expr;
     if ( defined $self->{'weight' }) {
-        $sum_expr = sprintf( 'sum(%s*%s)', 
+        $sum_expr = sprintf( 'sum(%s*%s)',
                              sql_quote_name( $self->{'field'} ),
                              sql_quote_name( $self->{'weight'} ) );
     } else {
@@ -186,16 +186,20 @@
     $query->add_aggr_field( $self->{'name'} . "_total", $sum_expr );
 
     my $n_expr;
-    if ( defined $self->{'by_fields'} ) {
+    if ( !defined $self->{'by_fields'} ) {
+        $n_expr = 'count(*)';
+    } elsif ( @{$self->{'by_fields'}} == 1 &&
+            is_numeric_type( $self->report_spec()->field( $self->{'by_fields'}[0] )->type() ) )
+    {
+        $n_expr = sprintf( 'sum(%s)', sql_quote_name($self->{'by_fields'}[0]));
+    } else {
         my @fields = map { sql_quote_name( $_ ) } @{ $self->{'by_fields'} };
         $n_expr = sprintf( 'lr_count_uniq(%s)', join (',', @fields) );
-    } else {
-        $n_expr = 'count(*)';
     }
     $query->add_aggr_field( $self->{'name'} . "_n", $n_expr );
-
     $query->add_aggr_field( $self->{'name'},
                             sprintf( '%s/%s', $sum_expr, $n_expr ) );
+    return;
 }
 
 # Overrides Lire::SimpleStat::sql_required_fields

-- 
To UNSUBSCRIBE, email to commit-request at logreport.org with a subject of 
"unsubscribe". Trouble? Send an email with subject "help" to 
commit-request at logreport.org



More information about the Commit mailing list