Spellcheck (jawnsy++)
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Storage / DBI / AmbiguousGlob.pm
index a7ed94b..3d98122 100644 (file)
@@ -4,10 +4,11 @@ use strict;
 use warnings;
 
 use base 'DBIx::Class::Storage::DBI';
+use mro 'c3';
 
 =head1 NAME
 
-DBIx::Class::Storage::DBI::AmbiguousGlob - Storage component for RDBMS supporting multicolumn in clauses
+DBIx::Class::Storage::DBI::AmbiguousGlob - Storage component for RDBMS choking on count(*)
 
 =head1 DESCRIPTION
 
@@ -20,12 +21,15 @@ the time it gets to the *). Thus for any subquery count we select only the
 primary keys of the main table in the inner query. This hopefully still
 hits the indexes and keeps the server happy.
 
-At this point the only overriden method is C<_subq_count_select()>
+At this point the only overridden method is C<_subq_count_select()>
 
 =cut
 
 sub _subq_count_select {
   my ($self, $source, $rs_attrs) = @_;
+
+  return $rs_attrs->{group_by} if $rs_attrs->{group_by};
+
   my @pcols = map { join '.', $rs_attrs->{alias}, $_ } ($source->primary_columns);
   return @pcols ? \@pcols : [ 1 ];
 }