X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FSchema%2FLoader%2FDBI%2FComponent%2FQuotedDefault.pm;h=223b044d1a09f6770f87272ce68ab513265b21fb;hb=9633664658e5795fbf70d7e89456910a8481526f;hp=95ec9f8fdf012f293e8c41ef08971d262e61be08;hpb=e94ccbea965501f951f77e650f5b0e589a967112;p=dbsrgits%2FDBIx-Class-Schema-Loader.git diff --git a/lib/DBIx/Class/Schema/Loader/DBI/Component/QuotedDefault.pm b/lib/DBIx/Class/Schema/Loader/DBI/Component/QuotedDefault.pm index 95ec9f8..223b044 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI/Component/QuotedDefault.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI/Component/QuotedDefault.pm @@ -4,7 +4,7 @@ use strict; use warnings; use mro 'c3'; -our $VERSION = '0.07006'; +our $VERSION = '0.07010'; =head1 NAME @@ -34,9 +34,18 @@ sub _columns_info_for { if ($def =~ /^["'](.*?)['"](?:::[\w\s]+)?\z/) { $info->{default_value} = $1; } +# Some DBs (eg. Pg) put parenthesis around negative number defaults + elsif ($def =~ /^\((-?\d.*?)\)(?:::[\w\s]+)?\z/) { + $info->{default_value} = $1; + } + elsif ($def =~ /^(\d.*?)(?:::[\w\s]+)?\z/) { + $info->{default_value} = $1; + } + elsif ($def =~ /^NULL:?/i) { + $info->{default_value} = \'null'; + } else { - # Some DBs (eg. Pg) put brackets around negative number defaults - $info->{default_value} = $def =~ /^\(?(-?\d.*?)\)?$/ ? $1 : \$def; + $info->{default_value} = \$def; } } }