- improved type conversions in oracle plugin (especially date/time columns now can be filtered in styles)
This commit is contained in:
parent
f3e5c57e4c
commit
8b61efa333
3 changed files with 31 additions and 20 deletions
|
@ -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:
|
||||
|
|
|
@ -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<mapnik::value_integer>(rs_->getInt (i + 1)));
|
||||
feature->put(fld_name, static_cast<mapnik::value_integer>(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:
|
||||
|
|
|
@ -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";
|
||||
|
|
Loading…
Add table
Reference in a new issue