Changeset 564
- Timestamp:
- 02/05/09 00:27:19 (10 months ago)
- Files:
-
- 1 modified
-
trunk/lib/Data/ObjectDriver/SQL.pm (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/lib/Data/ObjectDriver/SQL.pm
r552 r564 72 72 73 73 ## Add any explicit JOIN statements before the non-joined tables. 74 my %joined; 75 my @from = @{ $stmt->from || [] }; 74 76 if ($stmt->joins && @{ $stmt->joins }) { 75 77 my $initial_table_written = 0; … … 78 80 $table = $stmt->_add_index_hint($table); ## index hint handling 79 81 $sql .= $table unless $initial_table_written++; 82 $joined{$table}++; 80 83 for my $join (@{ $j->{joins} }) { 81 84 $sql .= ' ' . … … 84 87 } 85 88 } 86 $sql .= ', ' if @{ $stmt->from }; 87 } 88 89 if ($stmt->from && @{ $stmt->from }) { 90 $sql .= join ', ', map { $stmt->_add_index_hint($_) } @{ $stmt->from }; 89 @from = grep { ! $joined{ $_ } } @from; 90 $sql .= ', ' if @from; 91 } 92 93 if (@from) { 94 $sql .= join ', ', map { $stmt->_add_index_hint($_) } @from; 91 95 } 92 96
