X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FResultSource.pm;h=9e67e66f32f44e1cee77ef69b57c862518c4192d;hb=bf7aed106962cc8db897f6712cec2b8b5e15ecb7;hp=bb178fc16eb1adf0e11028a8d247fd0ce889386b;hpb=a4fcda000aa9833874693ea9bc940a92abbe1b6f;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/lib/DBIx/Class/ResultSource.pm b/lib/DBIx/Class/ResultSource.pm index bb178fc..9e67e66 100644 --- a/lib/DBIx/Class/ResultSource.pm +++ b/lib/DBIx/Class/ResultSource.pm @@ -1089,12 +1089,16 @@ sub resolve_join { $seen ||= {}; $force_left ||= { force => 0 }; if (ref $join eq 'ARRAY') { - return map { $self->resolve_join($_, $alias, $seen) } @$join; + return + map { + local $force_left->{force} = $force_left->{force}; + $self->resolve_join($_, $alias, $seen, $force_left); + } @$join; } elsif (ref $join eq 'HASH') { return map { my $as = ($seen->{$_} ? $_.'_'.($seen->{$_}+1) : $_); - local $force_left->{force}; + local $force_left->{force} = $force_left->{force}; ( $self->resolve_join($_, $alias, $seen, $force_left), $self->related_source($_)->resolve_join( @@ -1106,7 +1110,6 @@ sub resolve_join { $self->throw_exception("No idea how to resolve join reftype ".ref $join); } else { my $count = ++$seen->{$join}; - #use Data::Dumper; warn Dumper($seen); my $as = ($count > 1 ? "${join}_${count}" : $join); my $rel_info = $self->relationship_info($join); $self->throw_exception("No such relationship ${join}") unless $rel_info; @@ -1283,8 +1286,6 @@ in the supplied relationships. Examples: sub resolve_prefetch { my ($self, $pre, $alias, $seen, $order, $collapse) = @_; $seen ||= {}; - #$alias ||= $self->name; - #warn $alias, Dumper $pre; if( ref $pre eq 'ARRAY' ) { return map { $self->resolve_prefetch( $_, $alias, $seen, $order, $collapse ) } @@ -1297,7 +1298,6 @@ sub resolve_prefetch { $self->related_source($_)->resolve_prefetch( $pre->{$_}, "${alias}.$_", $seen, $order, $collapse) } keys %$pre; - #die Dumper \@ret; return @ret; } elsif( ref $pre ) { @@ -1350,8 +1350,6 @@ sub resolve_prefetch { return map { [ "${as}.$_", "${as_prefix}${pre}.$_", ] } $rel_source->columns; - #warn $alias, Dumper (\@ret); - #return @ret; } }