Skip to content

Commit 11c62ca

Browse files
committed
A joined feature is added only when one of its field is not null
1 parent 927dea3 commit 11c62ca

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

src/core/qgsvectorlayer.cpp

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2718,7 +2718,24 @@ bool QgsVectorLayer::addFeaturesToJoinedLayers( QgsFeatureList &features, Flags
27182718
joinLayer->updateFeature( existingFeature );
27192719
}
27202720
else
2721-
joinFeatures << joinFeature;
2721+
{
2722+
// joined feature is added only if one of its field is not null
2723+
bool notNullFields = false;
2724+
Q_FOREACH ( const QgsField &field, joinFeature.fields() )
2725+
{
2726+
if ( field.name() == info.joinFieldName() )
2727+
continue;
2728+
2729+
if ( !joinFeature.attribute( field.name() ).isNull() )
2730+
{
2731+
notNullFields = true;
2732+
break;
2733+
}
2734+
}
2735+
2736+
if ( notNullFields )
2737+
joinFeatures << joinFeature;
2738+
}
27222739
}
27232740

27242741
joinLayer->addFeatures( joinFeatures );

0 commit comments

Comments
 (0)