Skip to content

Commit c93187d

Browse files
committedApr 2, 2016
oracle provider: handle NULL geometry in case of multiple geometry columns
1 parent 59de73a commit c93187d

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed
 

‎src/providers/oracle/qgsoraclefeatureiterator.cpp

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -275,13 +275,20 @@ bool QgsOracleFeatureIterator::fetchFeature( QgsFeature& feature )
275275
if ( fld.type() == QVariant::ByteArray && fld.typeName().endsWith( ".SDO_GEOMETRY" ) )
276276
{
277277
QByteArray *ba = static_cast<QByteArray*>( v.data() );
278-
unsigned char *copy = new unsigned char[ba->size()];
279-
memcpy( copy, ba->constData(), ba->size() );
278+
if ( ba->size() > 0 )
279+
{
280+
unsigned char *copy = new unsigned char[ba->size()];
281+
memcpy( copy, ba->constData(), ba->size() );
280282

281-
QgsGeometry *g = new QgsGeometry();
282-
g->fromWkb( copy, ba->size() );
283-
v = g->exportToWkt();
284-
delete g;
283+
QgsGeometry *g = new QgsGeometry();
284+
g->fromWkb( copy, ba->size() );
285+
v = g->exportToWkt();
286+
delete g;
287+
}
288+
else
289+
{
290+
v = QVariant( QVariant::String );
291+
}
285292
}
286293
else if ( v.type() != fld.type() )
287294
v = QgsVectorDataProvider::convertValue( fld.type(), v.toString() );

0 commit comments

Comments
 (0)
Please sign in to comment.