Merge branch 0.08200_track into master
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / SQLMaker / OracleJoins.pm
index 3401a93..d2bc160 100644 (file)
@@ -81,10 +81,11 @@ sub _recurse_oracle_joins {
         && $jt !~ /inner/i;
     }
 
+    # sadly SQLA treats where($scalar) as literal, so we need to jump some hoops
     push @where, map { \sprintf ('%s%s = %s%s',
-      $self->_quote($_),
+      ref $_ ? $self->_recurse_where($_) : $self->_quote($_),
       $left_join,
-      $self->_quote($on->{$_}),
+      ref $on->{$_} ? $self->_recurse_where($on->{$_}) : $self->_quote($on->{$_}),
       $right_join,
     )} keys %$on;
   }
@@ -102,9 +103,8 @@ DBIx::Class::SQLMaker::OracleJoins - Pre-ANSI Joins-via-Where-Clause Syntax
 
 =head1 PURPOSE
 
-This module was originally written to support Oracle < 9i where ANSI joins
-weren't supported at all, but became the module for Oracle >= 8 because
-Oracle's optimising of ANSI joins is horrible.
+This module is used with Oracle < 9.0 due to lack of support for standard
+ANSI join syntax.
 
 =head1 SYNOPSIS