RT50828
Arthur Axel "fREW" Schmidt [Wed, 11 Nov 2009 22:50:43 +0000 (22:50 +0000)]
Changes
lib/DBIx/Class/ResultSet.pm
t/100populate.t

diff --git a/Changes b/Changes
index f1b561a..25707cb 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,7 @@
 Revision history for DBIx::Class
 
+        - Fix populate with has_many bug
+          (RT #50828)
         - Fix Oracle autoincrement broken for Resultsets with scalar refs
           (RT #50874)
         - Complete Sybase RDBMS support including:
index ca16242..f91676f 100644 (file)
@@ -1850,7 +1850,7 @@ sub populate {
       foreach my $rel (@rels) {
         next unless $item->{$rel} && ref $item->{$rel} eq "ARRAY";
 
-        my $parent = $self->find(map {{$_=>$item->{$_}} } @pks)
+        my $parent = $self->find({map { $_ => $item->{$_} } @pks})
      || $self->throw_exception('Cannot find the relating object.');
 
         my $child = $parent->$rel;
index 2e30a17..5237480 100644 (file)
@@ -296,4 +296,24 @@ for (
   ok ($row, "Stringification test row '$_' properly inserted");
 }
 
+lives_ok {
+   $schema->resultset('TwoKeys')->populate([{
+      artist => 1,
+      cd     => 5,
+      fourkeys_to_twokeys => [{
+            f_foo => 1,
+            f_bar => 1,
+            f_hello => 1,
+            f_goodbye => 1,
+            autopilot => 'a',
+      },{
+            f_foo => 2,
+            f_bar => 2,
+            f_hello => 2,
+            f_goodbye => 2,
+            autopilot => 'b',
+      }]
+   }])
+} 'fix RT50828';
+
 done_testing;