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=e69052253e9b9e0d1d2951dbeb002be92dde4907;hpb=6d358d5830e93cbb969f4fec62d499d15f9a23e8;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 e690522..223b044 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI/Component/QuotedDefault.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI/Component/QuotedDefault.pm @@ -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; } } }