$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};
# Numeric Types
#
- # everything is alised to NUMBER
+ # integer/decimal/numeric is alised to NUMBER
#
'decimal' => { data_type => 'integer' },
'dec' => { data_type => 'integer' },
'int' => { data_type => 'integer' },
'smallint' => { data_type => 'integer' },
- 'binary_float' => { data_type => 'binary_float' },
- 'binary_double' => { data_type => 'binary_double' },
+ 'binary_float' => { data_type => 'real', original => { data_type => 'binary_float' } },
+ 'binary_double' => { data_type => 'double precision', original => { data_type => 'binary_double' } },
+
+ # these are not mentioned in the summary chart, must be aliased
+ real => { data_type => 'real', original => { data_type => 'float', size => 63 } },
+ 'float(63)' => { data_type => 'real', original => { data_type => 'float', size => 63 } },
+ 'float(64)' => { data_type => 'double precision', original => { data_type => 'float', size => 64 } },
+ 'float(126)' => { data_type => 'double precision', original => { data_type => 'float', size => 126 } },
+ float => { data_type => 'double precision', original => { data_type => 'float', size => 126 } },
# Blob Types
'raw(50)' => { data_type => 'raw', size => 50 },