Fix for RT54697
Peter Rabbitson [Fri, 19 Feb 2010 10:14:30 +0000 (10:14 +0000)]
Changes
lib/DBIx/Class/ResultSet.pm
t/inflate/hri.t

diff --git a/Changes b/Changes
index f1994c5..6be2659 100644 (file)
--- a/Changes
+++ b/Changes
@@ -4,6 +4,7 @@ Revision history for DBIx::Class
           schemas get called on $schema->deploy
         - Fix count() with group_by aliased-function resultsets
         - Massive refactor and cleanup of primary key handling
+        - Fixed regression losing custom result_class (really this time)
 
 0.08119 2010-02-15 09:36:00 (UTC)
         - Add $rs->is_ordered to test for existing order_by on a resultset
index 036cb38..7937ded 100644 (file)
@@ -535,7 +535,7 @@ sub find {
   }
 
   # Run the query
-  my $rs = $self->search ($query, {result_class => $self->result_class, %$attrs});
+  my $rs = $self->search ($query, $attrs);
   if (keys %{$rs->_resolved_attrs->{collapse}}) {
     my $row = $rs->next;
     carp "Query returned more than one row" if $rs->next;
@@ -1136,6 +1136,7 @@ sub result_class {
   if ($result_class) {
     $self->ensure_class_loaded($result_class);
     $self->_result_class($result_class);
+    $self->{attrs}{result_class} = $result_class if ref $self;
   }
   $self->_result_class;
 }
index fab040e..eb74da1 100644 (file)
@@ -26,6 +26,9 @@ my $schema = DBICTest->init_schema();
 
     my $cd1 = $rs->find ({cdid => 1});
     is_deeply ( $cd1, $datahashref1, 'first/find return the same thing');
+
+    my $cd2 = $rs->search({ cdid => 1 })->single;
+    is_deeply ( $cd2, $datahashref1, 'first/search+single return the same thing');
 }
 
 sub check_cols_of {