[Jifty-commit] r5684 - Jifty-DBI/branches/tisql/lib/Jifty/DBI

Jifty commits jifty-commit at lists.jifty.org
Tue Aug 12 02:43:16 EDT 2008


Author: ruz
Date: Tue Aug 12 02:43:16 2008
New Revision: 5684

Modified:
   Jifty-DBI/branches/tisql/lib/Jifty/DBI/Tisql.pm

Log:
* move merge_join code, it may be broken

Modified: Jifty-DBI/branches/tisql/lib/Jifty/DBI/Tisql.pm
==============================================================================
--- Jifty-DBI/branches/tisql/lib/Jifty/DBI/Tisql.pm	(original)
+++ Jifty-DBI/branches/tisql/lib/Jifty/DBI/Tisql.pm	Tue Aug 12 02:43:16 2008
@@ -108,52 +108,6 @@
     $collection->close_paren('tisql');
 }
 
-{
-my %cache;
-my $i = 0;
-my $aliases;
-my $merge_joins_cb = sub {
-    my $meta = shift;
-    my @parts = split /\./, $meta->{'string'};
-    while ( @parts > 2 ) {
-        my $new_str = join '.', splice @parts, 0, 2;
-        my $m = $cache{ $new_str };
-        unless ( $m ) {
-            my $name = 'a'. ++$i;
-            $name = "a". ++$i while exists $aliases->{ $name };
-            $m = {
-                name     => $name,
-                string   => $new_str,
-                chain    => [ $meta->{'chain'}[0] ],
-                previous => $meta->{'previous'},
-            };
-            $cache{ $new_str } = $aliases->{ $name } = $m;
-        }
-        shift @{ $meta->{'chain'} };
-        unshift @parts, $m->{'name'};
-        $meta->{'previous'} = $m;
-        $meta->{'string'} = join '.', @parts;
-    }
-};
-
-sub merge_joins {
-    my $self = shift;
-    my $tree = shift;
-    %cache = ();
-    $aliases = $tree->{'aliases'};
-
-    $merge_joins_cb->( $_ ) foreach values %$aliases;
-    $self->apply_callback_to_tree(
-        $tree->{'conditions'},
-        sub {
-            my $condition = shift;
-            $merge_joins_cb->( $_ ) foreach
-                grep ref $_, map $condition->{$_}, qw(lhs rhs);
-        }
-    );
-}
-}
-
 sub resolve_join {
     my $self = shift;
     my $meta = shift;
@@ -382,4 +336,50 @@
     return $tree;
 }
 
+{
+my %cache;
+my $i = 0;
+my $aliases;
+my $merge_joins_cb = sub {
+    my $meta = shift;
+    my @parts = split /\./, $meta->{'string'};
+    while ( @parts > 2 ) {
+        my $new_str = join '.', splice @parts, 0, 2;
+        my $m = $cache{ $new_str };
+        unless ( $m ) {
+            my $name = 'a'. ++$i;
+            $name = "a". ++$i while exists $aliases->{ $name };
+            $m = {
+                name     => $name,
+                string   => $new_str,
+                chain    => [ $meta->{'chain'}[0] ],
+                previous => $meta->{'previous'},
+            };
+            $cache{ $new_str } = $aliases->{ $name } = $m;
+        }
+        shift @{ $meta->{'chain'} };
+        unshift @parts, $m->{'name'};
+        $meta->{'previous'} = $m;
+        $meta->{'string'} = join '.', @parts;
+    }
+};
+
+sub merge_joins {
+    my $self = shift;
+    my $tree = shift;
+    %cache = ();
+    $aliases = $tree->{'aliases'};
+
+    $merge_joins_cb->( $_ ) foreach values %$aliases;
+    $self->apply_callback_to_tree(
+        $tree->{'conditions'},
+        sub {
+            my $condition = shift;
+            $merge_joins_cb->( $_ ) foreach
+                grep ref $_, map $condition->{$_}, qw(lhs rhs);
+        }
+    );
+}
+}
+
 1;


More information about the Jifty-commit mailing list