[fdo-trac] #806: KingOra - Very Long Int64 Values Crash FeatureReader

FDO trac_fdo at osgeo.org
Fri Dec 30 08:01:35 EST 2011


#806: KingOra - Very Long Int64 Values Crash FeatureReader
-----------------------------------+----------------------------------------
   Reporter:  crispinatime         |       Owner:  haris
       Type:  defect               |      Status:  new  
   Priority:  major                |   Milestone:  3.6.0
  Component:  KingOracle Provider  |     Version:  3.7.0
   Severity:  3                    |    Keywords:       
External_id:                       |  
-----------------------------------+----------------------------------------
 When an Oracle schema contains what FDO considers an Int64 - eg
 "NUMBER(15,0)" and that field contains very large numbers there is an
 exception thrown in KingOra because of a call to
 m_OciStatement->GetLong().  Where the same column definition contains
 lesser values all is OK.

 To address this, in "c_KgOraReader.h" in the following template class I
 changed the call to a GetDouble and returned with a cast.  But I'm not a
 proper C++ programmer!


 template <class FDO_READER> FdoInt64
 c_KgOraReader<FDO_READER>::GetInt64(FdoString* propertyName)
 {
 ... snip...
     double val = m_OciStatement->GetDouble(oraind);
     return (FdoInt64)val;
 ... snip...
 }

 Because of the inneficiency in the MapGuide reader for tooltips (it
 doesn't optimise for the columns required but instead reads all fields
 because one of them may be needed in an expression editor... one day this
 will be fixed in MG) this can result in no tooltips being displayed and
 noise in MG error logs.

-- 
Ticket URL: <http://trac.osgeo.org/fdo/ticket/806>
FDO <http://fdo.osgeo.org/>
Feature Data Objects


More information about the fdo-trac mailing list