From cf23d56aef0bca6d6f958dd00cc97587dace89e2 Mon Sep 17 00:00:00 2001 From: Sandro Mani Date: Mon, 25 Sep 2017 13:19:09 +0200 Subject: [PATCH] [OGR] Followup: Add orig_ogc_fid as last field to avoid changing field order --- src/providers/ogr/qgsogrfeatureiterator.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/providers/ogr/qgsogrfeatureiterator.cpp b/src/providers/ogr/qgsogrfeatureiterator.cpp index 314792b2534..4ce78d7bb0c 100644 --- a/src/providers/ogr/qgsogrfeatureiterator.cpp +++ b/src/providers/ogr/qgsogrfeatureiterator.cpp @@ -346,7 +346,12 @@ bool QgsOgrFeatureIterator::readFeature( OGRFeatureH fet, QgsFeature &feature ) { if ( mOrigFidAdded ) { - feature.setId( OGR_F_GetFieldAsInteger64( fet, 0 ) ); + OGRFeatureDefnH fdef = OGR_L_GetLayerDefn( ogrLayer ); + int lastField = OGR_FD_GetFieldCount( fdef ) - 1; + if ( lastField >= 0 ) + feature.setId( OGR_F_GetFieldAsInteger64( fet, lastField ) ); + else + feature.setId( OGR_F_GetFID( fet ) ); } else {