From: ivan Date: Sat, 27 Mar 2010 04:09:09 +0000 (+0000) Subject: mysql: fix reverse-engineering of empty string default X-Git-Url: http://git.freeside.biz/gitweb/?a=commitdiff_plain;h=f5199905679d5e7ba8b305d56f3cb58f9095b557;p=DBIx-DBSchema.git mysql: fix reverse-engineering of empty string default --- diff --git a/Changes b/Changes index f4d33e1..d64ce74 100644 --- 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 diff --git a/DBSchema/DBD/mysql.pm b/DBSchema/DBD/mysql.pm index 148d215..7f3582f 100644 --- a/DBSchema/DBD/mysql.pm +++ b/DBSchema/DBD/mysql.pm @@ -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'},