X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FCDBICompat%2FMightHave.pm;h=e661f6b3435641b76ad05989ff629c204e4b3140;hb=0200ec9a0bc45cd04f19cb59bf2e67f51d674734;hp=5cf073e04362c36f07b074d9de70169637c81290;hpb=b28cc0ba2d1d443728c9cb48d97e5a2cdccf8cb4;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/CDBICompat/MightHave.pm b/lib/DBIx/Class/CDBICompat/MightHave.pm index 5cf073e..e661f6b 100644 --- a/lib/DBIx/Class/CDBICompat/MightHave.pm +++ b/lib/DBIx/Class/CDBICompat/MightHave.pm @@ -5,18 +5,12 @@ use warnings; sub might_have { my ($class, $rel, $f_class, @columns) = @_; - my ($pri, $too_many) = keys %{ $class->_primaries }; - $class->throw( "might_have only works with a single primary key; ${class} has more" ) - if $too_many; - my $f_pri; - ($f_pri, $too_many) = keys %{ $f_class->_primaries }; - $class->throw( "might_have only works with a single primary key; ${f_class} has more" ) - if $too_many; - $class->add_relationship($rel, $f_class, - { "foreign.${f_pri}" => "self.${pri}" }, - { accessor => 'single', proxy => \@columns, - cascade_update => 1, cascade_delete => 1 }); - 1; + if (ref $columns[0] || !defined $columns[0]) { + return $class->NEXT::might_have($rel, $f_class, @columns); + } else { + return $class->NEXT::might_have($rel, $f_class, undef, + { proxy => \@columns }); + } } 1;