Correctly mark nested INNER joins as such
authorMike Rylander <mrylander@gmail.com>
Wed, 14 Aug 2013 14:25:14 +0000 (10:25 -0400)
committerMike Rylander <mrylander@gmail.com>
Thu, 22 Aug 2013 15:38:05 +0000 (11:38 -0400)
We've been adopting containing the JOINs flavor, and then
attempting to use IS NOT NULL to restrict NULL-ness
in the WHERE clause.  This is almost right, but not quite,
and was done in an attempt to match behavior with the
expectations of users that are not SQL experts.  However,
right is better than "looks right most of the time", so
we use the proper join type now.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Jason Boyer <jboyer1@library.in.gov>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Open-ILS/src/perlmods/lib/OpenILS/Reporter/SQLBuilder.pm

index 67c8af6..940972a 100644 (file)
@@ -1213,7 +1213,7 @@ sub toSQL {
     my $_nullable_rel = $dir && $dir eq 'l' ? '_right_rel' : '_left_rel';
     $self->{$_nullable_rel}->{_nullable} = $dir;
 
-    my $j = $dir ? ( $dir eq 'l' ? 'LEFT OUTER' : ( $dir eq 'r' ? 'RIGHT OUTER' : 'FULL OUTER' ) ) : 'INNER';
+    my $j = 'INNER';
 
     my $sql = "\n\t$j ". $self->SUPER::toSQL;