X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FRow.pm;h=ae89b78a2a5a533a048b55df4b91c9efc526d4d9;hb=e5c6382908ee65577e53c0771629384d70959a3d;hp=87f3716c19179d862e9c735472296cc93709eba4;hpb=4a27d168d64e0c2c61ddbfa367c360ed5028a3d3;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Row.pm b/lib/DBIx/Class/Row.pm index 87f3716..ae89b78 100644 --- a/lib/DBIx/Class/Row.pm +++ b/lib/DBIx/Class/Row.pm @@ -6,7 +6,10 @@ use warnings; use base qw/DBIx::Class/; use Scalar::Util 'blessed'; -use DBIx::Class::_Util qw( dbic_internal_try fail_on_internal_call ); +use DBIx::Class::_Util qw( + dbic_internal_try fail_on_internal_call + DUMMY_ALIASPAIR +); use DBIx::Class::Carp; use SQL::Abstract qw( is_literal_value is_plain_value ); @@ -356,7 +359,7 @@ sub insert { my $rel_obj = $related_stuff{$rel_name}; if (! $self->{_rel_in_storage}{$rel_name}) { - next unless (blessed $rel_obj && $rel_obj->isa('DBIx::Class::Row')); + next unless (blessed $rel_obj && $rel_obj->isa(__PACKAGE__)); next unless $rsrc->_pk_depends_on( $rel_name, { $rel_obj->get_columns } @@ -441,7 +444,7 @@ sub insert { : $related_stuff{$rel_name} ; - if (@cands && blessed $cands[0] && $cands[0]->isa('DBIx::Class::Row') + if (@cands && blessed $cands[0] && $cands[0]->isa(__PACKAGE__) ) { my $reverse = $rsrc->reverse_relationship_info($rel_name); foreach my $obj (@cands) { @@ -1191,13 +1194,14 @@ sub copy { $copied->{$_->ID}++ or $_->copy( $foreign_vals ||= $rsrc->_resolve_relationship_condition( - infer_values_based_on => {}, + require_join_free_values => 1, rel_name => $rel_name, self_result_object => $new, - self_alias => "\xFE", # irrelevant - foreign_alias => "\xFF", # irrelevant, - )->{inferred_values} + # an API where these are optional would be too cumbersome, + # instead always pass in some dummy values + DUMMY_ALIASPAIR, + )->{join_free_values} ) for $self->related_resultset($rel_name)->all; }