Invoke default_join_type only on undefined types
Peter Rabbitson [Wed, 2 Sep 2009 10:25:35 +0000 (10:25 +0000)]
lib/DBIx/Class/ResultSource.pm
lib/DBIx/Class/SQLAHacks.pm

index dfa4c78..eee5e3d 100644 (file)
@@ -1237,9 +1237,10 @@ sub _resolve_join {
     my $type;
     if ($force_left) {
       $type = 'left';
-    } else {
-      $type = $rel_info->{attrs}{join_type} || '';
-      $force_left = 1 if lc($type) eq 'left';
+    }
+    else {
+      $type = $rel_info->{attrs}{join_type};
+      $force_left = 1 if lc($type||'') eq 'left';
     }
 
     my $rel_src = $self->related_source($join);
index f44ed4f..3a0d1f6 100644 (file)
@@ -517,7 +517,7 @@ sub _recurse_from {
       $join_type =~ s/^\s+ | \s+$//xg;
     }
 
-    $join_type ||= $self->_default_jointype;
+    $join_type = $self->_default_jointype if not defined $join_type;
 
     my $join_clause = sprintf ('%s JOIN ',
       $join_type ?  ' ' . uc($join_type) : ''