MySQL decimal field rounded to nearest integer

Stephane Lessard LESSARDST at DFO-MPO.GC.CA
Wed Feb 23 06:49:21 PST 2005


Frank,

>
>
> First, to confirm, you see this problem when using ogr to
> access MySQL tables via ODBC, is that right?  So the issue is
> with decimal field handling in the OGR ODBC driver?

That is correct.

>
> An "ogrinfo" report for the table in question - along with a
> Mysql dump of the field definitions would be helpful ...
> ideally in a GDAL/OGR bugzilla report.

Here's what ogrinfo returns for 5 fields:

Longueur (Real) =        5
Largeur (Real) =        5
Profondeur (Real) =       11
Secteur (Integer) = 3
URL (String) = http://www.marinfo.gc.ca/GEDSite/PDF/Q5173-04.pdf

And here's the definition from MySQL:

'Longueur', 'decimal(8,3)'
'Largeur', 'decimal(8,3)'
'Profondeur', 'decimal(8,3)'
'Secteur', 'int(11)'
'URL', 'varchar(255)'

>
> The code responsible for field type classification for OGRs
> ODBC driver is in:
>
>   gdal/ogr/ogrsf_frmts/odbc/ogrodbclayer.cpp
>
> The method is OGRODBCLayer::BuildFeatureDefn().
>
> There is handling specifically for the ODBC types
> SQL_INTEGER, SQL_DECIMAL, SQL_FLOAT, SQL_REAL and SQL_DOUBLE.
>  All others are treated as strings.
> The SQL_DECIMAL is supposed to be treated as a generic
> floating point value.
>
> I need to establish:
>  o What OGR field type is getting used for the field.
>  o What ODBC (SQL_*)  field type code OGR is getting from ODBC
>     for the field.
>
> Also, could you confirm what version of GDAL/OGR you are using?
> 1.2.5?

1.2.5 it is.

>
> Best regards,

Thanks a lot!

> --
> ---------------------------------------+----------------------
> ----------
> ---------------------------------------+------
> I set the clouds in motion - turn up   | Frank Warmerdam,
> warmerdam at pobox.com
> light and sound - activate the windows | http://pobox.com/~warmerdam
> and watch the world go round - Rush    | Geospatial
> Programmer for Rent
>



More information about the MapServer-users mailing list