auto-add relations if they are used in the where but not in join
Justin Hunter [Fri, 13 Mar 2009 19:02:58 +0000 (19:02 +0000)]
lib/DBIx/Class/ResultSet.pm

index 99ce6ce..b5d8086 100644 (file)
@@ -313,6 +313,11 @@ sub search_rs {
     : undef
   );
 
+  foreach my $key (keys %$cond) {
+    next unless my ($alias) = ($key =~ /^(\w+)\.\w+$/);
+    push @{$new_attrs->{join}}, $alias unless grep(/${alias}/, @{$new_attrs->{join}}) or $alias eq 'me';
+  }
+
   if (defined $where) {
     $new_attrs->{where} = (
       defined $new_attrs->{where}