From: Dagfinn Ilmari Mannsåker Date: Tue, 12 Sep 2017 10:36:49 +0000 (+0100) Subject: Tidy up handling of literal default values in ::Pg X-Git-Tag: 0.07048~11 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=dbsrgits%2FDBIx-Class-Schema-Loader.git;a=commitdiff_plain;h=a64b98ad73e1a7ed4e0143171f41f747c784117b Tidy up handling of literal default values in ::Pg --- diff --git a/lib/DBIx/Class/Schema/Loader/DBI/Pg.pm b/lib/DBIx/Class/Schema/Loader/DBI/Pg.pm index f701e36..b614919 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI/Pg.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI/Pg.pm @@ -308,24 +308,24 @@ EOF } } -# process SERIAL columns - if (ref($info->{default_value}) eq 'SCALAR' - && ${ $info->{default_value} } =~ /\bnextval\('([^:]+)'/i) { - $info->{is_auto_increment} = 1; - $info->{sequence} = $1; - delete $info->{default_value}; - } - -# alias now() to current_timestamp for deploying to other DBs - if ((eval { lc ${ $info->{default_value} } }||'') eq 'now()') { - # do not use a ref to a constant, that breaks Data::Dump output - ${$info->{default_value}} = 'current_timestamp'; + if (ref($info->{default_value}) eq 'SCALAR') { + # process SERIAL columns + if (${ $info->{default_value} } =~ /\bnextval\('([^:]+)'/i) { + $info->{is_auto_increment} = 1; + $info->{sequence} = $1; + delete $info->{default_value}; + } + # alias now() to current_timestamp for deploying to other DBs + elsif (lc ${ $info->{default_value} } eq 'now()') { + # do not use a ref to a constant, that breaks Data::Dump output + ${$info->{default_value}} = 'current_timestamp'; - my $now = 'now()'; - $info->{original}{default_value} = \$now; + my $now = 'now()'; + $info->{original}{default_value} = \$now; + } } -# detect 0/1 for booleans and rewrite + # detect 0/1 for booleans and rewrite if ($data_type =~ /^bool/i && exists $info->{default_value}) { if ($info->{default_value} eq '0') { my $false = 'false';