diff --git a/src/core/qgsvectorlayerfeatureiterator.cpp b/src/core/qgsvectorlayerfeatureiterator.cpp index fbaf36d4f46..123a3d69519 100644 --- a/src/core/qgsvectorlayerfeatureiterator.cpp +++ b/src/core/qgsvectorlayerfeatureiterator.cpp @@ -90,13 +90,12 @@ QgsVectorLayerFeatureIterator::QgsVectorLayerFeatureIterator( QgsVectorLayerFeat , mFetchedFid( false ) , mEditGeometrySimplifier( 0 ) { + prepareExpressions(); // prepare joins: may add more attributes to fetch (in order to allow join) if ( mSource->mJoinBuffer->containsJoins() ) prepareJoins(); - prepareExpressions(); - mHasVirtualAttributes = !mFetchJoinInfo.isEmpty() || !mExpressionFieldInfo.isEmpty(); // by default provider's request is the same @@ -507,7 +506,7 @@ void QgsVectorLayerFeatureIterator::prepareExpressions() if ( mRequest.flags() & QgsFeatureRequest::SubsetOfAttributes ) { QgsAttributeList attrs; - Q_FOREACH ( const QString& col, exp->referencedColumns() ) + Q_FOREACH( const QString& col, exp->referencedColumns() ) { attrs.append( mSource->mFields.fieldNameIndex( col ) ); }