[Bast-commits] r4385 - in DBIx-Class/0.08/branches/replication_dedux: lib/SQL/Translator/Parser/DBIx t

jnapiorkowski at dev.catalyst.perl.org jnapiorkowski at dev.catalyst.perl.org
Wed May 14 17:05:22 BST 2008


Author: jnapiorkowski
Date: 2008-05-14 17:05:22 +0100 (Wed, 14 May 2008)
New Revision: 4385

Modified:
   DBIx-Class/0.08/branches/replication_dedux/lib/SQL/Translator/Parser/DBIx/Class.pm
   DBIx-Class/0.08/branches/replication_dedux/t/86sqlt.t
Log:
changed SQLT::Parser::DBIC so that in FK constraints, both the field order for the source and target tables are ensured to follow the same ordering rule

Modified: DBIx-Class/0.08/branches/replication_dedux/lib/SQL/Translator/Parser/DBIx/Class.pm
===================================================================
--- DBIx-Class/0.08/branches/replication_dedux/lib/SQL/Translator/Parser/DBIx/Class.pm	2008-05-14 14:09:42 UTC (rev 4384)
+++ DBIx-Class/0.08/branches/replication_dedux/lib/SQL/Translator/Parser/DBIx/Class.pm	2008-05-14 16:05:22 UTC (rev 4385)
@@ -121,16 +121,13 @@
             my $othertable = $source->related_source($rel);
             my $rel_table = $othertable->name;
 
+            # Force the order of @cond to match the order of ->add_columns
+            my $idx;
+            my %other_columns_idx = map {'foreign.'.$_ => ++$idx } $othertable->columns;            
+            my @cond = sort { $other_columns_idx{$a} cmp $other_columns_idx{$b} } keys(%{$rel_info->{cond}}); 
+      
             # Get the key information, mapping off the foreign/self markers
-            my @cond = keys(%{$rel_info->{cond}}); 
             my @refkeys = map {/^\w+\.(\w+)$/} @cond;
-            
-            # Force the order of the referenced fields to be the same as
-            # ->add_columns method.
-            my $idx;
-            my %other_columns_idx = map {$_ => ++$idx } $othertable->columns;
-            @refkeys = sort { $other_columns_idx{$a} cmp $other_columns_idx{$b} } @refkeys; 
-            
             my @keys = map {$rel_info->{cond}->{$_} =~ /^\w+\.(\w+)$/} @cond;
 
             if($rel_table)

Modified: DBIx-Class/0.08/branches/replication_dedux/t/86sqlt.t
===================================================================
--- DBIx-Class/0.08/branches/replication_dedux/t/86sqlt.t	2008-05-14 14:09:42 UTC (rev 4384)
+++ DBIx-Class/0.08/branches/replication_dedux/t/86sqlt.t	2008-05-14 16:05:22 UTC (rev 4385)
@@ -58,14 +58,14 @@
   fourkeys_to_twokeys => [
     {
       'display' => 'fourkeys_to_twokeys->twokeys',
-      'name' => 'fourkeys_to_twokeys_fk_t_cd_t_artist', 'index_name' => 't_cd_t_artist',
+      'name' => 'fourkeys_to_twokeys_fk_t_artist_t_cd', 'index_name' => 't_artist_t_cd',
       'selftable' => 'fourkeys_to_twokeys', 'foreigntable' => 'twokeys', 
       'selfcols'  => ['t_artist', 't_cd'], 'foreigncols' => ['artist', 'cd'], 
       on_delete => 'CASCADE', on_update => 'CASCADE', deferrable => 1,
     },
     {
-      'display' => 'fourkeys_to_twokeys->fourkeys', 'index_name' => 'f_foo_f_goodbye_f_hello_f_bar',
-      'name' => 'fourkeys_to_twokeys_fk_f_foo_f_goodbye_f_hello_f_bar',
+      'display' => 'fourkeys_to_twokeys->fourkeys', 'index_name' => 'f_foo_f_bar_f_hello_f_goodbye',
+      'name' => 'fourkeys_to_twokeys_fk_f_foo_f_bar_f_hello_f_goodbye',
       'selftable' => 'fourkeys_to_twokeys', 'foreigntable' => 'fourkeys', 
       'selfcols'  => [qw(f_foo f_bar f_hello f_goodbye)],
       'foreigncols' => [qw(foo bar hello goodbye)], 
@@ -216,8 +216,8 @@
     },
     {
       'display' => 'long_columns->owner2',
-      'name' => 'long_columns_fk__32_character_column_aaaaaaaaaaa__32_ch_12bdb9cf',
-      'index_name' => '_32_character_column_aaaaaaaaaaa__32_character_column_b_6fa7ff05',
+      'name' => 'long_columns_fk__32_character_column_bbbbbbbbbbb__32_ch_b7ee284e',
+      'index_name' => '_32_character_column_bbbbbbbbbbb__32_character_column_a_76863ce2',
       'selftable' => 'long_columns', 'foreigntable' => 'long_columns',
       'selfcols' => ['_32_character_column_bbbbbbbbbbb', '_32_character_column_aaaaaaaaaaa'],
       'foreigncols' => ['_32_character_column_aaaaaaaaaaa', '_32_character_column_bbbbbbbbbbb'],




More information about the Bast-commits mailing list