Author: spadkins
Date: Thu Jan 15 12:43:08 2009
New Revision: 12447

Modified:
   p5ee/trunk/App-Repository/lib/App/Repository/DBI.pm

Log:
fix the join order problem

Modified: p5ee/trunk/App-Repository/lib/App/Repository/DBI.pm
==============================================================================
--- p5ee/trunk/App-Repository/lib/App/Repository/DBI.pm (original)
+++ p5ee/trunk/App-Repository/lib/App/Repository/DBI.pm Thu Jan 15 12:43:08 2009
@@ -3154,6 +3154,33 @@
     #    $d->Indent(1);
     #    print $App::DEBUG_FILE $d->Dump();
     #}
+
+    my $column_defs = $table_def->{column};
+    foreach my $column (keys %$column_defs) {
+        my $dbexpr_modified = 0;
+        my $dbexpr = $column_defs->{$column}{dbexpr};
+        my $dbexpr_temp = $dbexpr;
+        while ($dbexpr_temp =~ /\{([^\{\}]+)\}/) {
+            my $column2 = $1;
+            if (defined $column_defs->{$column2}) {
+                my $column2_dbexpr = $column_defs->{$column2}{dbexpr};
+                if ($column2_dbexpr) {
+                    $dbexpr_temp =~ s/\{$column2\}/$column2_dbexpr/;
+                    $dbexpr_temp =~ s/\{$column2\}//g;
+                    $dbexpr      =~ s/\{$column2\}/$column2_dbexpr/g;
+                    $dbexpr_modified = 0;
+                }
+                else {
+                    $dbexpr_temp =~ s/\{$column2\}//g;
+                }
+            }
+            else {
+                $dbexpr_temp =~ s/\{$column2\}//g;
+            }
+        }
+        $column_defs->{$column}{dbexpr} = $dbexpr if ($dbexpr_modified);
+    }
+
     &App::sub_exit() if ($App::trace);
 }
 

Reply via email to