[Jifty-commit] r5014 - in Jifty-DBI/branches/tisql: lib/Jifty/DBI

Jifty commits jifty-commit at lists.jifty.org
Tue Feb 5 21:15:47 EST 2008


Author: ruz
Date: Tue Feb  5 21:15:47 2008
New Revision: 5014

Modified:
   Jifty-DBI/branches/tisql/   (props changed)
   Jifty-DBI/branches/tisql/lib/Jifty/DBI/Handle.pm

Log:
 r4543 at cubic-pc (orig r4542):  alexmv | 2007-11-26 22:12:54 +0300
  r25123 at zoq-fot-pik:  chmrr | 2007-11-26 14:10:54 -0500
   * Fix reverse joins.  Broken in multiple ways.
 


Modified: Jifty-DBI/branches/tisql/lib/Jifty/DBI/Handle.pm
==============================================================================
--- Jifty-DBI/branches/tisql/lib/Jifty/DBI/Handle.pm	(original)
+++ Jifty-DBI/branches/tisql/lib/Jifty/DBI/Handle.pm	Tue Feb  5 21:15:47 2008
@@ -849,34 +849,24 @@
     }
 
     if ( $args{'alias2'} ) {
-        if ( $args{'collection'}{'joins'}{ $args{alias2} } ) {
+        if ( $args{'collection'}{'joins'}{ $args{alias2} } and lc $args{'collection'}{'joins'}{ $args{alias2} }{type} eq "cross" ) {
             my $join = $args{'collection'}{'joins'}{ $args{alias2} };
-            if ( lc $join->{type} eq 'cross' ) {
-                $args{'table2'} = $join->{table};
-                $alias = $join->{alias};
-            } else {
-                warn "Already joined?";
-                return;
-            }
+            $args{'table2'} = $join->{table};
+            $alias = $join->{alias};
         } else {
 
             # if we can't do that, can we reverse the join and have it work?
-            @args{qw/alias1 alias2/}   = @args{qw/alias2 $alias2/};
+            @args{qw/alias1 alias2/}   = @args{qw/alias2 alias1/};
             @args{qw/column1 column2/} = @args{qw/column2 column1/};
 
-            if ( $args{'collection'}{'joins'}{ $args{alias2} } ) {
+            if ( $args{'collection'}{'joins'}{ $args{alias2} } and lc $args{'collection'}{'joins'}{ $args{alias2} }{type} eq "cross" ) {
                 my $join = $args{'collection'}{'joins'}{ $args{alias2} };
-                if ( lc $join->{type} eq 'cross' ) {
-                    $args{'table2'} = $join->{table};
-                    $alias = $join->{alias};
-                } else {
-                    warn "Already joined?";
-                    return;
-                }
+                $args{'table2'} = $join->{table};
+                $alias = $join->{alias};
             } else {
 
                 # Swap back
-                @args{qw/alias1 alias2/}   = @args{qw/alias2 $alias2/};
+                @args{qw/alias1 alias2/}   = @args{qw/alias2 alias1/};
                 @args{qw/column1 column2/} = @args{qw/column2 column1/};
 
                 return $self->Jifty::DBI::Collection::limit(


More information about the Jifty-commit mailing list