X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FRow.pm;h=b64711e4957dace0f4b5f141c7afa51b6582645c;hb=7fb16f1a1bf1e7de4098b4f4ac3d061312f6bac3;hp=32bc6317ef8203788dde8920c1db2d7d6193ca09;hpb=ea20d0fdf6d84e0d75d557f71cf7d1233b607b4c;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Row.pm b/lib/DBIx/Class/Row.pm index 32bc631..b64711e 100644 --- a/lib/DBIx/Class/Row.pm +++ b/lib/DBIx/Class/Row.pm @@ -247,11 +247,13 @@ Called by ResultSet to inflate a result from storage sub inflate_result { my ($class, $me, $prefetch) = @_; #use Data::Dumper; print Dumper(@_); - my $new = bless({ _column_data => $me }, ref $class || $class); - $new->in_storage(1); + my $new = bless({ _column_data => $me, _in_storage => 1 }, + ref $class || $class); + my $schema; PRE: foreach my $pre (keys %{$prefetch||{}}) { my $rel_obj = $class->_relationships->{$pre}; - my $pre_class = $class->resolve_class($rel_obj->{class}); + $schema ||= $new->result_source->schema; + my $pre_class = $schema->class($rel_obj->{class}); my $fetched = $pre_class->inflate_result(@{$prefetch->{$pre}}); $class->throw("No accessor for prefetched $pre") unless defined $rel_obj->{attrs}{accessor};