remove_columns now deletes columns from _columns fixing has_columns false positives
Christopher H. Laco [Sun, 20 Aug 2006 04:16:30 +0000 (04:16 +0000)]
Changes
lib/DBIx/Class/ResultSource.pm
t/60core.t

diff --git a/Changes b/Changes
index 85e169b..beee9bd 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,7 @@
 Revision history for DBIx::Class
 
+        - remove_columns now deletes columns from _columns
+
 0.07001 2006-08-18 19:55:00
         - add directory argument to deploy()
         - support default aliases in many_to_many accessors.
index 659948f..ffb8bae 100644 (file)
@@ -247,7 +247,7 @@ sub remove_columns {
   }
 
   foreach (@cols) {
-    undef $columns->{$_};
+    delete $columns->{$_};
   };
 
   $self->_ordered_columns(\@remaining);
index aae959e..c5959d0 100644 (file)
@@ -7,7 +7,7 @@ use DBICTest;
 
 my $schema = DBICTest->init_schema();
 
-plan tests => 62;
+plan tests => 63;
 
 # figure out if we've got a version of sqlite that is older than 3.2.6, in
 # which case COUNT(DISTINCT()) doesn't work
@@ -289,5 +289,6 @@ ok(!$@, "stringify to false value doesn't cause error");
   is_deeply([$schema->source('CD')->columns], [qw/cdid artist title year/]);
   $schema->source('CD')->remove_columns('year');
   is_deeply([$schema->source('CD')->columns], [qw/cdid artist title/]);
+  ok(! exists $schema->source('CD')->_columns->{'year'}, 'year still exists in _columns');
 }