Skip to content

Commit

Permalink
care for types of fid
Browse files Browse the repository at this point in the history
  • Loading branch information
signedav committed Oct 22, 2018
1 parent d9fdf13 commit d1172d4
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions src/core/qgsofflineediting.cpp
Expand Up @@ -749,11 +749,15 @@ QgsVectorLayer *QgsOfflineEditing::copyVectorLayer( QgsVectorLayer *layer, sqlit
// NOTE: SpatiaLite provider ignores position of geometry column
// fill gap in QgsAttributeMap if geometry column is not last (WORKAROUND)
QgsAttributes attrs = f.attributes();

int column = 0;
//newAttrs have an additional attribute (fid), so we have to add a dummy
if ( containerType == GPKG && layer->dataProvider()->fields().lookupField( "fid" ) >= 0 )
int indexOfFid = layer->dataProvider()->fields().lookupField( "fid" );
if ( containerType == GPKG && ( indexOfFid == -1 || ( layer->dataProvider()->fields().at( indexOfFid ).type() != QVariant::Int
&& layer->dataProvider()->fields().at( indexOfFid ).type() != QVariant::LongLong ) ) )
{
// newAttrs (1) has an additional attribute (fid) that is (2) of the correct type
// so we have to add a dummy because otherwise it messes up with the amount of attributes
column++;
}
QgsAttributes newAttrs( attrs.count() + column );
for ( int it = 0; it < attrs.count(); ++it )
{
Expand Down

0 comments on commit d1172d4

Please sign in to comment.