diff --git a/plugins/input/occi/occi_datasource.cpp b/plugins/input/occi/occi_datasource.cpp index c0858c017..320662eb2 100644 --- a/plugins/input/occi/occi_datasource.cpp +++ b/plugins/input/occi/occi_datasource.cpp @@ -237,44 +237,48 @@ occi_datasource::occi_datasource(parameters const& params) switch (type_oid) { case oracle::occi::OCCIBOOL: + desc_.add_descriptor(attribute_descriptor(fld_name,mapnik::Boolean)); + break; case oracle::occi::OCCIINT: case oracle::occi::OCCIUNSIGNED_INT: - case oracle::occi::OCCIROWID: desc_.add_descriptor(attribute_descriptor(fld_name,mapnik::Integer)); break; case oracle::occi::OCCIFLOAT: case oracle::occi::OCCIBFLOAT: case oracle::occi::OCCIDOUBLE: case oracle::occi::OCCIBDOUBLE: - case oracle::occi::OCCINUMBER: - case oracle::occi::OCCI_SQLT_NUM: desc_.add_descriptor(attribute_descriptor(fld_name,mapnik::Double)); break; + case oracle::occi::OCCINUMBER: + case oracle::occi::OCCI_SQLT_NUM: case oracle::occi::OCCICHAR: case oracle::occi::OCCISTRING: case oracle::occi::OCCI_SQLT_AFC: case oracle::occi::OCCI_SQLT_AVC: case oracle::occi::OCCI_SQLT_CHR: + case oracle::occi::OCCI_SQLT_LNG: case oracle::occi::OCCI_SQLT_LVC: - case oracle::occi::OCCI_SQLT_RDD: case oracle::occi::OCCI_SQLT_STR: case oracle::occi::OCCI_SQLT_VCS: case oracle::occi::OCCI_SQLT_VNU: case oracle::occi::OCCI_SQLT_VBI: case oracle::occi::OCCI_SQLT_VST: - desc_.add_descriptor(attribute_descriptor(fld_name,mapnik::String)); - break; case oracle::occi::OCCIDATE: - case oracle::occi::OCCITIMESTAMP: - case oracle::occi::OCCIINTERVALDS: - case oracle::occi::OCCIINTERVALYM: case oracle::occi::OCCI_SQLT_DAT: case oracle::occi::OCCI_SQLT_DATE: + case oracle::occi::OCCIROWID: + case oracle::occi::OCCI_SQLT_RDD: + case oracle::occi::OCCI_SQLT_RID: case oracle::occi::OCCI_SQLT_TIME: case oracle::occi::OCCI_SQLT_TIME_TZ: + case oracle::occi::OCCITIMESTAMP: case oracle::occi::OCCI_SQLT_TIMESTAMP: case oracle::occi::OCCI_SQLT_TIMESTAMP_LTZ: case oracle::occi::OCCI_SQLT_TIMESTAMP_TZ: + desc_.add_descriptor(attribute_descriptor(fld_name,mapnik::String)); + break; + case oracle::occi::OCCIINTERVALDS: + case oracle::occi::OCCIINTERVALYM: case oracle::occi::OCCI_SQLT_INTERVAL_YM: case oracle::occi::OCCI_SQLT_INTERVAL_DS: case oracle::occi::OCCIANYDATA: diff --git a/plugins/input/occi/occi_featureset.cpp b/plugins/input/occi/occi_featureset.cpp index 81f14dc44..c902520ae 100644 --- a/plugins/input/occi/occi_featureset.cpp +++ b/plugins/input/occi/occi_featureset.cpp @@ -98,7 +98,7 @@ feature_ptr occi_featureset::next() if (use_wkb_) { - Blob blob = rs_->getBlob (1); + Blob blob = rs_->getBlob(1); blob.open(oracle::occi::OCCI_LOB_READONLY); int size = blob.length(); @@ -143,44 +143,50 @@ feature_ptr occi_featureset::next() switch (type_oid) { case oracle::occi::OCCIBOOL: + feature->put(fld_name, (rs_->getInt(i + 1) != 0)); + break; case oracle::occi::OCCIINT: case oracle::occi::OCCIUNSIGNED_INT: - case oracle::occi::OCCIROWID: - feature->put(fld_name,static_cast(rs_->getInt (i + 1))); + feature->put(fld_name, static_cast(rs_->getInt(i + 1))); break; case oracle::occi::OCCIFLOAT: case oracle::occi::OCCIBFLOAT: + feature->put(fld_name, (double)rs_->getFloat(i + 1)); + break; case oracle::occi::OCCIDOUBLE: case oracle::occi::OCCIBDOUBLE: + feature->put(fld_name, rs_->getDouble(i + 1)); + break; case oracle::occi::OCCINUMBER: case oracle::occi::OCCI_SQLT_NUM: - feature->put(fld_name,rs_->getDouble (i + 1)); - break; case oracle::occi::OCCICHAR: case oracle::occi::OCCISTRING: case oracle::occi::OCCI_SQLT_AFC: case oracle::occi::OCCI_SQLT_AVC: case oracle::occi::OCCI_SQLT_CHR: + case oracle::occi::OCCI_SQLT_LNG: case oracle::occi::OCCI_SQLT_LVC: - case oracle::occi::OCCI_SQLT_RDD: case oracle::occi::OCCI_SQLT_STR: case oracle::occi::OCCI_SQLT_VCS: case oracle::occi::OCCI_SQLT_VNU: case oracle::occi::OCCI_SQLT_VBI: case oracle::occi::OCCI_SQLT_VST: - feature->put(fld_name,(UnicodeString) tr_->transcode (rs_->getString (i + 1).c_str())); - break; + case oracle::occi::OCCIROWID: + case oracle::occi::OCCI_SQLT_RDD: + case oracle::occi::OCCI_SQLT_RID: case oracle::occi::OCCIDATE: - case oracle::occi::OCCITIMESTAMP: - case oracle::occi::OCCIINTERVALDS: - case oracle::occi::OCCIINTERVALYM: case oracle::occi::OCCI_SQLT_DAT: case oracle::occi::OCCI_SQLT_DATE: case oracle::occi::OCCI_SQLT_TIME: case oracle::occi::OCCI_SQLT_TIME_TZ: + case oracle::occi::OCCITIMESTAMP: case oracle::occi::OCCI_SQLT_TIMESTAMP: case oracle::occi::OCCI_SQLT_TIMESTAMP_LTZ: case oracle::occi::OCCI_SQLT_TIMESTAMP_TZ: + feature->put(fld_name, (UnicodeString)tr_->transcode(rs_->getString(i + 1).c_str())); + break; + case oracle::occi::OCCIINTERVALDS: + case oracle::occi::OCCIINTERVALYM: case oracle::occi::OCCI_SQLT_INTERVAL_YM: case oracle::occi::OCCI_SQLT_INTERVAL_DS: case oracle::occi::OCCIANYDATA: diff --git a/plugins/input/occi/occi_types.cpp b/plugins/input/occi/occi_types.cpp index dc4c6e6a5..4ea5556e9 100644 --- a/plugins/input/occi/occi_types.cpp +++ b/plugins/input/occi/occi_types.cpp @@ -74,6 +74,7 @@ std::string occi_enums::resolve_datatype(int type_id) case oracle::occi::OCCI_SQLT_AVC: return "OCCI_SQLT_AVC"; case oracle::occi::OCCI_SQLT_CHR: return "OCCI_SQLT_CHR"; case oracle::occi::OCCI_SQLT_LVC: return "OCCI_SQLT_LVC"; + case oracle::occi::OCCI_SQLT_LNG: return "OCCI_SQLT_LNG"; case oracle::occi::OCCI_SQLT_STR: return "OCCI_SQLT_STR"; case oracle::occi::OCCI_SQLT_VCS: return "OCCI_SQLT_VCS"; case oracle::occi::OCCI_SQLT_VNU: return "OCCI_SQLT_VNU";