bugfixes from nilsonsfj + 0.03005 release stuff 0.03005
Brandon Black [Thu, 20 Jul 2006 21:16:44 +0000 (21:16 +0000)]
Changes
lib/DBIx/Class/Schema/Loader/Base.pm
lib/DBIx/Class/Schema/Loader/DBI/mysql.pm
t/lib/dbixcsl_common_tests.pm

diff --git a/Changes b/Changes
index a08ec01..9ffc050 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,7 +1,14 @@
 Revision history for Perl extension DBIx::Class::Schema::Loader
 
+0.03005 Wed Jul 19 15:09:30 UTC 2006
+        [ Pretty much everything in this release originates from nilsonsfj patches ]
+        - bugfix: mysql unique constraint code had an
+          obvious but longstanding error
+        - bugfix: columns were being specified out-of-order,
+          bug was introduced in the 0.03004 column metadata
+          dumping feature
         - dump code now skips+warns instead of dies when
-          dump_overwrite not set [from nilsonsfj]
+          dump_overwrite not set
 
 0.03004 Tue Jul 11 04:38:09 UTC 2006
         - make_schema_at efficiency improvements
index dff4419..00c0c2b 100644 (file)
@@ -493,11 +493,11 @@ sub _load_classes {
             $self->_dbic_stmt($table_class,'add_columns',@$cols);
         }
         else {
-            my %cols_hash;
-            foreach my $col (@$cols) {
-                $cols_hash{$col} = \%{($col_info->{$col})};
-            }
-            $self->_dbic_stmt($table_class,'add_columns',%cols_hash);
+            $self->_dbic_stmt(
+                $table_class,
+                'add_columns',
+                map { $_, $col_info->{$_} } @$cols
+            );
         }
 
         my $pks = $self->_table_pk_info($table) || [];
index 1ab0107..93fadad 100644 (file)
@@ -97,7 +97,7 @@ sub _table_uniq_info {
 
     my @uniqs;
     my $keydata = $self->_mysql_table_get_keys($table);
-    foreach my $keyname (%$keydata) {
+    foreach my $keyname (keys %$keydata) {
         next if $keyname eq 'PRIMARY';
         push(@uniqs, [ $keyname => $keydata->{$keyname} ]);
     }
index db95bb2..3a86855 100644 (file)
@@ -43,7 +43,7 @@ sub _monikerize {
 sub run_tests {
     my $self = shift;
 
-    plan tests => 73;
+    plan tests => 76;
 
     $self->create();
 
@@ -124,6 +124,11 @@ sub run_tests {
     isa_ok( $rsobj23, "DBIx::Class::ResultSet" );
     isa_ok( $rsobj24, "DBIx::Class::ResultSet" );
 
+    my @columns_lt2 = $class2->columns;
+    is($columns_lt2[0], 'id', "Column Ordering 0");
+    is($columns_lt2[1], 'dat', "Column Ordering 1");
+    is($columns_lt2[2], 'dat2', "Column Ordering 2");
+
     my %uniq1 = $class1->unique_constraints;
     my $uniq1_test = 0;
     foreach my $ucname (keys %uniq1) {