$info->{size} = $info->{size} / 2;
}
elsif (lc($info->{data_type}) eq 'number') {
- $info->{data_type} = 'numeric';
+ $info->{original}{data_type} = 'number';
+ $info->{data_type} = 'numeric';
if (eval { $info->{size}[0] == 38 && $info->{size}[1] == 0 }) {
+ $info->{original}{size} = $info->{size};
+
$info->{data_type} = 'integer';
delete $info->{size};
}
$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};
}
$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};