@@ -555,7 +555,7 @@ QStringList QgsOgrProvider::subLayers() const
555
555
// Count features for geometry types
556
556
QMap<OGRwkbGeometryType, int > fCount ;
557
557
// TODO: avoid reading attributes, setRelevantFields cannot be called here because it is not constant
558
- // setRelevantFields( true, QgsAttributeList() );
558
+ // setRelevantFields( ogrLayer, true, QgsAttributeList() );
559
559
OGR_L_ResetReading ( layer );
560
560
OGRFeatureH fet;
561
561
while (( fet = OGR_L_GetNextFeature ( layer ) ) )
@@ -714,7 +714,7 @@ QString QgsOgrProvider::storageType() const
714
714
return ogrDriverName;
715
715
}
716
716
717
- void QgsOgrProvider::setRelevantFields ( bool fetchGeometry, const QgsAttributeList &fetchAttributes )
717
+ void QgsOgrProvider::setRelevantFields ( OGRLayerH ogrLayer, bool fetchGeometry, const QgsAttributeList &fetchAttributes )
718
718
{
719
719
#if defined(GDAL_VERSION_NUM) && GDAL_VERSION_NUM >= 1800
720
720
if ( OGR_L_TestCapability ( ogrLayer, OLCIgnoreFields ) )
@@ -972,7 +972,7 @@ bool QgsOgrProvider::addFeature( QgsFeature& f )
972
972
973
973
bool QgsOgrProvider::addFeatures ( QgsFeatureList & flist )
974
974
{
975
- setRelevantFields ( true , attributeIndexes () );
975
+ setRelevantFields ( ogrLayer, true , attributeIndexes () );
976
976
977
977
bool returnvalue = true ;
978
978
for ( QgsFeatureList::iterator it = flist.begin (); it != flist.end (); ++it )
@@ -1074,7 +1074,7 @@ bool QgsOgrProvider::changeAttributeValues( const QgsChangedAttributesMap & attr
1074
1074
1075
1075
clearMinMaxCache ();
1076
1076
1077
- setRelevantFields ( true , attributeIndexes () );
1077
+ setRelevantFields ( ogrLayer, true , attributeIndexes () );
1078
1078
1079
1079
for ( QgsChangedAttributesMap::const_iterator it = attr_map.begin (); it != attr_map.end (); ++it )
1080
1080
{
@@ -1170,7 +1170,7 @@ bool QgsOgrProvider::changeGeometryValues( QgsGeometryMap & geometry_map )
1170
1170
OGRFeatureH theOGRFeature = 0 ;
1171
1171
OGRGeometryH theNewGeometry = 0 ;
1172
1172
1173
- setRelevantFields ( true , attributeIndexes () );
1173
+ setRelevantFields ( ogrLayer, true , attributeIndexes () );
1174
1174
1175
1175
for ( QgsGeometryMap::iterator it = geometry_map.begin (); it != geometry_map.end (); ++it )
1176
1176
{
@@ -2382,7 +2382,7 @@ void QgsOgrProvider::recalculateFeatureCount()
2382
2382
{
2383
2383
featuresCounted = 0 ;
2384
2384
OGR_L_ResetReading ( ogrLayer );
2385
- setRelevantFields ( true , QgsAttributeList () );
2385
+ setRelevantFields ( ogrLayer, true , QgsAttributeList () );
2386
2386
OGR_L_ResetReading ( ogrLayer );
2387
2387
OGRFeatureH fet;
2388
2388
while (( fet = OGR_L_GetNextFeature ( ogrLayer ) ) )
0 commit comments