Fixed hm prefetch
Matt S Trout [Tue, 14 Mar 2006 01:06:13 +0000 (01:06 +0000)]
lib/DBIx/Class/ResultSet.pm
t/run/23cache.tl

index 3ce9489..07ca30e 100644 (file)
@@ -566,10 +566,13 @@ sub all {
       # If we're collapsing has_many prefetches it probably makes
       # very little difference, and this is cleaner than hacking
       # _construct_object to survive the approach
-    my @row;
     $self->cursor->reset;
-    while (@row = $self->cursor->next) {
+    my @row = $self->cursor->next;
+    while (@row) {
       push(@obj, $self->_construct_object(@row));
+      @row = (exists $self->{stashed_row}
+               ? @{delete $self->{stashed_row}}
+               : $self->cursor->next);
     }
   } else {
     @obj = map { $self->_construct_object(@$_) } $self->cursor->all;
index 1f85dcb..3f98204 100644 (file)
@@ -3,7 +3,7 @@ my $schema = shift;
 
 eval "use DBD::SQLite";
 plan skip_all => 'needs DBD::SQLite for testing' if $@;
-plan tests => 15;
+plan tests => 16;
 
 my $rs = $schema->resultset("Artist")->search(
   { artistid => 1 }