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=22e5584305e9da5ed4ef8fa017401aeddb94f193;hb=6bef66965f54b025022273482bc134fdc58790b2;hp=1508c820af68f54efd426e4388f1bb022419a64e;hpb=c697835eacc34e76036a6e91cc4b0bc1ccd05f69;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 1508c82..22e5584 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI/Component/QuotedDefault.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI/Component/QuotedDefault.pm @@ -2,9 +2,10 @@ package DBIx::Class::Schema::Loader::DBI::Component::QuotedDefault; use strict; use warnings; +use base 'DBIx::Class::Schema::Loader::DBI'; use mro 'c3'; -our $VERSION = '0.07005'; +our $VERSION = '0.07043'; =head1 NAME @@ -34,9 +35,19 @@ 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) { + my $null = 'null'; + $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; } } }