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);
}