add datetime_undef_if_invalid => 1 for MySQL date data types (RT#64820)
Rafael Kitover [Sun, 16 Jan 2011 13:53:39 +0000 (08:53 -0500)]
Changes
lib/DBIx/Class/Schema/Loader/DBI/mysql.pm
t/11mysql_common.t

diff --git a/Changes b/Changes
index 72bbde4..9ac108a 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,7 @@
 Revision history for Perl extension DBIx::Class::Schema::Loader
 
+        - add datetime_undef_if_invalid => 1 for MySQL date data types
+          (RT#64820)
         - added column_accessor_map option
         - Preserve relationship names when redumping and another FK is added
           (RT#62424)
index 357cb75..83a9387 100644 (file)
@@ -176,6 +176,9 @@ EOF
                 delete $info->{size};
             }
         }
+        elsif ($info->{data_type} =~ /^(?:date(?:time)?|timestamp)\z/) {
+            $info->{datetime_undef_if_invalid} = 1;
+        }
 
         # Sometimes apparently there's a bug where default_value gets set to ''
         # for things that don't actually have or support that default (like ints.)
index 045675d..e414380 100644 (file)
@@ -90,10 +90,10 @@ my $tester = dbixcsl_common_tests->new(
         'fixed(3,3)'   => { data_type => 'decimal', size => [3,3] },
 
         # Date and Time Types
-        'date'        => { data_type => 'date' },
-        'datetime'    => { data_type => 'datetime' },
+        'date'        => { data_type => 'date', datetime_undef_if_invalid => 1 },
+        'datetime'    => { data_type => 'datetime', datetime_undef_if_invalid => 1 },
         'timestamp default current_timestamp'
-                      => { data_type => 'timestamp', default_value => \'current_timestamp' },
+                      => { data_type => 'timestamp', default_value => \'current_timestamp', datetime_undef_if_invalid => 1 },
         'time'        => { data_type => 'time' },
         'year'        => { data_type => 'year' },
         'year(4)'     => { data_type => 'year' },