mysql: fix reverse-engineering of empty string default
authorivan <ivan>
Sat, 27 Mar 2010 04:09:09 +0000 (04:09 +0000)
committerivan <ivan>
Sat, 27 Mar 2010 04:09:09 +0000 (04:09 +0000)
Changes
DBSchema/DBD/mysql.pm

diff --git a/Changes b/Changes
index f4d33e1..d64ce74 100644 (file)
--- a/Changes
+++ b/Changes
@@ -4,6 +4,7 @@ Revision history for Perl extension DBIx::DBSchema.
         - mysql: TEXT->LONGTEXT
         - mysql: when reverse engineering, transform a default of
           CURRENT_TIMESTAMP into the more common NOW()
+        - mysql: fix reverse-engineering of empty string default
 
 0.38 Thu Jan 14 15:26:13 PST 2010
         - Bump version number for ->quoted_default availability & default
index 148d215..7f3582f 100644 (file)
@@ -48,9 +48,13 @@ sub columns {
     my($type, $length) = ($1, $2);
 
     my $default = $_->{'Default'};
-    $default = '' unless defined($default);
-    $default = \0 if $default eq '0';
-    $default = \'NOW()' if uc($default) eq 'CURRENT_TIMESTAMP';
+    if ( defined($default) ) {
+      $default = \"''"    if $default eq '';
+      $default = \0       if $default eq '0';
+      $default = \'NOW()' if uc($default) eq 'CURRENT_TIMESTAMP';
+    } else {
+      $default = '';
+    }
 
     [
       $_->{'Field'},