Opened 11 years ago

Closed 11 years ago

#870 closed defect (fixed)

Oracle ODBC: read double values from NUMBER & FLOAT columns, map to wrong RDBI type

Reported by: kwi Owned by: kwi
Priority: minor Milestone: 3.8.0
Component: ODBC Provider Version: 3.8.0
Severity: 2 Keywords: ODBC Oracle
Cc: External ID:

Description

When reading double values like 123.456789123456 from an Oracle "NUMBER" & "FLOAT" column, the ODBC mapping in providers\GenericRDBMS\src\ODBCDriver\desc_slct.c will map the value to a RDBI_FLOAT instead of RDBI_DOUBLE. The reason is that the threshold value for RDBI_DOUBLE is set to an "odbc_precision >= 53". But Oracle's NUMBER and FLOAT can store double precision values.Their odbc_precision begins with 19.

With this we loose precision of the value after reading it.

See unit test OdbcBaseFdoUpdateTest::updateNonDblGeom():
Validate the column "Z" value from "Table6" will not pass the test.
Validate the column "Y" value from "Table8" will not pass the test.

Change History (4)

comment:1 by kwi, 11 years ago

Owner: changed from gregboone to kwi

comment:2 by kwi, 11 years ago

Status: newassigned

comment:3 by kwi, 11 years ago

Submit to trunk in rev 6949.

comment:4 by kwi, 11 years ago

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.