X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=dbsrgits%2FDBIx-Class.git;a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FRelationship%2FAccessor.pm;fp=lib%2FDBIx%2FClass%2FRelationship%2FAccessor.pm;h=e6d4fb4c7e1f5e8ab565452b52fa1d8274d01c4d;hp=8fdeab2d00f7064b507367e002f7a834bb983b6a;hb=f4dc39d649672ff4452cf827ca204a1e937bc8b7;hpb=a4e4185f3c1e0af23dc3d916f706d0e92f95de45 diff --git a/lib/DBIx/Class/Relationship/Accessor.pm b/lib/DBIx/Class/Relationship/Accessor.pm index 8fdeab2..e6d4fb4 100644 --- a/lib/DBIx/Class/Relationship/Accessor.pm +++ b/lib/DBIx/Class/Relationship/Accessor.pm @@ -46,21 +46,24 @@ sub add_relationship_accessor { else { my $rsrc = $self->result_source; - my $relcond = $rsrc->_resolve_relationship_condition( - rel_name => %1$s, - foreign_alias => %1$s, - self_alias => 'me', - self_result_object => $self, - ); + my $jfc; return undef if ( - $relcond->{join_free_condition} - and - $relcond->{join_free_condition} ne DBIx::Class::_Util::UNRESOLVABLE_CONDITION + + $rsrc->relationship_info(%1$s)->{attrs}{undef_on_null_fk} + and - scalar grep { not defined $_ } values %%{ $relcond->{join_free_condition} || {} } + + $jfc = ( $rsrc->resolve_relationship_condition( + rel_name => %1$s, + foreign_alias => %1$s, + self_alias => 'me', + self_result_object => $self, + )->{join_free_condition} || {} ) + and - $rsrc->relationship_info(%1$s)->{attrs}{undef_on_null_fk} + + grep { not defined $_ } values %%$jfc ); my $val = $self->related_resultset( %1$s )->single;