Test and merge fixes
Peter Rabbitson [Sat, 20 Jun 2009 21:53:55 +0000 (21:53 +0000)]
lib/DBIx/Class/SQLAHacks.pm
lib/DBIx/Class/Storage/DBI/AmbiguousGlob.pm
t/746mssql.t

index e4ffce9..f99e0f7 100644 (file)
@@ -235,7 +235,7 @@ sub _Top {
 
   my $inner_lim = $rows + $offset;
 
-  my $sql = "SELECT TOP $inner_lim $inner_select $sql $grpby_having $order_by_inner";
+  $sql = "SELECT TOP $inner_lim $inner_select $sql $grpby_having $order_by_inner";
 
   if ($offset) {
     $sql = <<"SQL";
index 568e6ac..a7ed94b 100644 (file)
@@ -20,14 +20,14 @@ 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<_grouped_count_select()>
+At this point the only overriden method is C<_subq_count_select()>
 
 =cut
 
-sub _grouped_count_select {
-  my ($self, $source, $rs_args) = @_;
-  my @pcols = map { join '.', $rs_args->{alias}, $_ } ($source->primary_columns);
-  return @pcols ? \@pcols : $rs_args->{group_by};
+sub _subq_count_select {
+  my ($self, $source, $rs_attrs) = @_;
+  my @pcols = map { join '.', $rs_attrs->{alias}, $_ } ($source->primary_columns);
+  return @pcols ? \@pcols : [ 1 ];
 }
 
 =head1 AUTHORS
index a693949..7cfb460 100644 (file)
@@ -143,11 +143,14 @@ $schema->populate ('BooksInLibrary', [
       prefetch => 'books',
       order_by => 'name',
       page     => 2,
-      rows     => 3,
+      rows     => 4,
     });
 
-  is ($owners->all, 3, 'has_many prefetch returns correct number of rows');
-  is ($owners->count, 3, 'has-many prefetch returns correct count');
+  TODO: {
+    local $TODO = 'limit past end of resultset problem';
+    is ($owners->all, 3, 'has_many prefetch returns correct number of rows');
+    is ($owners->count, 3, 'has-many prefetch returns correct count');
+  }
 
   # try a ->belongs_to direction (no select collapse, group_by should work)
   my $books = $schema->resultset ('BooksInLibrary')->search ({
@@ -163,10 +166,11 @@ $schema->populate ('BooksInLibrary', [
   is ($books->page(1)->all, 1, 'Prefetched grouped search returns correct number of rows');
   is ($books->page(1)->count, 1, 'Prefetched grouped search returns correct count');
 
-  #
-  is ($books->page(2)->all, 0, 'Prefetched grouped search returns correct number of rows');
-  is ($books->page(2)->count, 0, 'Prefetched grouped search returns correct count');
-
+  TODO: {
+    local $TODO = 'limit past end of resultset problem';
+    is ($books->page(2)->all, 0, 'Prefetched grouped search returns correct number of rows');
+    is ($books->page(2)->count, 0, 'Prefetched grouped search returns correct count');
+  }
 }
 
 # clean up our mess