Merge branch 'current/for_cpan_index' into current/dq
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / ResultSource / RowParser.pm
index 1c84b3c..17c8ca1 100644 (file)
@@ -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;
     }
   }