X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FSchema%2FLoader%2FDBI%2FOracle.pm;fp=lib%2FDBIx%2FClass%2FSchema%2FLoader%2FDBI%2FOracle.pm;h=b2e1f5aa8d9b2a14d78c8e53b1b8bd50237dd393;hb=1c22571bbcdd910b099726e551bdb4d45be6e744;hp=7e0b33e5516155fc4008667baee4c2639838c720;hpb=007e35115cb7dd95dd4205cebb4dee1c8af2a744;p=dbsrgits%2FDBIx-Class-Schema-Loader.git diff --git a/lib/DBIx/Class/Schema/Loader/DBI/Oracle.pm b/lib/DBIx/Class/Schema/Loader/DBI/Oracle.pm index 7e0b33e..b2e1f5a 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI/Oracle.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI/Oracle.pm @@ -200,6 +200,18 @@ AND upper(trigger_type) LIKE '%BEFORE EACH ROW%' AND lower(triggering_event) LIK $info->{size} = [ $day_precision, $second_precision ]; } } + elsif (lc($info->{data_type}) eq 'float') { + $info->{original}{data_type} = 'float'; + $info->{original}{size} = $info->{size}; + + if ($info->{size} <= 63) { + $info->{data_type} = 'real'; + } + else { + $info->{data_type} = 'double precision'; + } + delete $info->{size}; + } elsif (lc($info->{data_type}) eq 'urowid' && $info->{size} == 4000) { delete $info->{size}; } @@ -207,6 +219,14 @@ AND upper(trigger_type) LIKE '%BEFORE EACH ROW%' AND lower(triggering_event) LIK $info->{data_type} = 'datetime'; $info->{original}{data_type} = 'date'; } + elsif (lc($info->{data_type}) eq 'binary_float') { + $info->{data_type} = 'real'; + $info->{original}{data_type} = 'binary_float'; + } + elsif (lc($info->{data_type}) eq 'binary_double') { + $info->{data_type} = 'double precision'; + $info->{original}{data_type} = 'binary_double'; + } if (eval { lc(${ $info->{default_value} }) eq 'sysdate' }) { $info->{original}{default_value} = $info->{default_value};