- Timestamp:
- 09/02/09 17:08:23 (4 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
lang/perl/DBIx-ShardManager-Pacific/trunk/lib/DBIx/ShardManager/Pacific.pm
r35163 r35164 58 58 && defined $get_match_col->($row); 59 59 my $dbh = $self->rw_handle($get_shard_col->($row)); 60 my $match_val = $get_match_col->($row); 60 61 if (my $t = first { $_->[0] == $dbh } @dbh_cols) { 61 push @{$t->[1]}, $get_match_col->($row); 62 if (my $u = $t->[1]->{$match_val}) { 63 push @$u, $row; 64 } else { 65 $t->[1]->{$match_val} = [ $row ]; 66 } 62 67 } else { 63 push @dbh_cols, [ $dbh, [ $get_match_col->($row) ]];68 push @dbh_cols, [ $dbh, { $match_val => [ $row ] } ]; 64 69 } 65 70 } … … 70 75 $join_tbl, 71 76 $join_col, 72 join(',', map { $dc->[0]->quote($_) } @{$dc->[1]}),77 join(',', map { $dc->[0]->quote($_) } sort keys %{$dc->[1]}), 73 78 ); 74 print STDERR "SQL:$query\n"; 75 my %join_rows = map { 76 +($_->{$join_col} => $_), 77 } @{$dc->[0]->selectall_arrayref($query, { Slice => {} })}; 78 for my $row (@$rows) { 79 if (defined $get_shard_col->($row) 80 && defined $get_match_col->($row) 81 && defined $join_rows{$get_match_col->($row)}) { 82 $set_match_col->($row, $join_rows{$get_match_col->($row)}); 79 # print STDERR "SQL:$query\n"; 80 for my $join_row ( 81 @{$dc->[0]->selectall_arrayref($query, { Slice => {} })} 82 ) { 83 for my $row (@{$dc->[1]->{$join_row->{$join_col}}}) { 84 $set_match_col->($row, $join_row); 83 85 } 84 86 }
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)