X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FResultSource%2FRowParser.pm;h=17c8ca181892d98ebcd3958e6ba53652641e589d;hb=refs%2Fheads%2Fcurrent%2Fdq;hp=1c84b3ce6fdd9fc9de3a3b60fa0a9a89b48c02a6;hpb=2231d31c29347c34a6b58b88782da220775bddaa;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/ResultSource/RowParser.pm b/lib/DBIx/Class/ResultSource/RowParser.pm index 1c84b3c..17c8ca1 100644 --- a/lib/DBIx/Class/ResultSource/RowParser.pm +++ b/lib/DBIx/Class/ResultSource/RowParser.pm @@ -8,6 +8,7 @@ use base 'DBIx::Class'; use Try::Tiny; use List::Util qw(first max); +use Scalar::Util qw(blessed); use DBIx::Class::ResultSource::RowParser::Util qw( assemble_simple_parser @@ -199,6 +200,9 @@ sub _resolve_collapse { $_ =~ s/^ (?: foreign | self ) \.//x for ($f, $s); $relinfo->{$rel}{fk_map}{$s} = $f; } + } elsif (blessed($cond) and $cond->isa('Data::Query::ExprBuilder')) { + my $cols = $self->_join_condition_to_hashref($cond->{expr}); + @{$relinfo->{$rel}{fk_map}}{values %$cols} = keys %$cols; } }