X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fp5-DBIx-Class-ResultSet-RecursiveUpdate;a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FResultSet%2FRecursiveUpdate.pm;h=dfee15b22a08edd50918f2a8fb5e6776cd7abed8;hp=1c408252dff1cbaef14d3d587224963634d7ceda;hb=93ad32433881b4de95483fa3e20fffbdce30a8ca;hpb=073ab86177b3de3f95b1d2a0dc97f3e8e582c7a6 diff --git a/lib/DBIx/Class/ResultSet/RecursiveUpdate.pm b/lib/DBIx/Class/ResultSet/RecursiveUpdate.pm index 1c40825..dfee15b 100644 --- a/lib/DBIx/Class/ResultSet/RecursiveUpdate.pm +++ b/lib/DBIx/Class/ResultSet/RecursiveUpdate.pm @@ -75,7 +75,7 @@ sub recursive_update { my $info = $object->result_source->relationship_info($name); $self->_update_relation( $name, $updates, $object, $info ); } - $self->_delete_empty_auto_increment($object); +# $self->_delete_empty_auto_increment($object); # don't allow insert to recurse to related objects - we do the recursion ourselves # $object->{_rel_in_storage} = 1; @@ -132,17 +132,17 @@ sub _update_relation { # warn 'resolved: ' . Dumper( $resolved ); use Data::Dumper; $resolved = undef - if $DBIx::Class::ResultSource::UNRESOLVABLE_CONDITION == $resolved; + if defined $DBIx::Class::ResultSource::UNRESOLVABLE_CONDITION && $DBIx::Class::ResultSource::UNRESOLVABLE_CONDITION == $resolved; if ( ref $updates->{$name} eq 'ARRAY' ) { for my $sub_updates ( @{ $updates->{$name} } ) { - $sub_updates = { %$sub_updates, %$resolved } if $resolved; + $sub_updates = { %$sub_updates, %$resolved } if $resolved && ref( $sub_updates ) eq 'HASH'; my $sub_object = $related_result->recursive_update( $sub_updates ); } } else { my $sub_updates = $updates->{$name}; - $sub_updates = { %$sub_updates, %$resolved } if $resolved; + $sub_updates = { %$sub_updates, %$resolved } if $resolved && ref( $sub_updates ) eq 'HASH'; my $sub_object = $related_result->recursive_update( $sub_updates ); $object->set_from_related( $name, $sub_object );