Skip to content

Commit 4f36b65

Browse files
committed
[BUGFIX] In WFS GetFeature joined fields not are not returned
In the WFS GetFeature Request, the joined fields are not returned. It's due to the use of provider instead of layer to retrieve all fields. The correction is to use layer->pendingFields() and layer->pendingAllAttributesList()
1 parent c7b28db commit 4f36b65

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/server/qgswfsserver.cpp

+8-4
Original file line numberDiff line numberDiff line change
@@ -463,10 +463,12 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format
463463

464464
QgsFeature feature;
465465
QgsAttributeMap featureAttributes;
466-
const QgsFields& fields = provider->fields();
466+
//const QgsFields& fields = provider->fields();
467+
const QgsFields& fields = layer->pendingFields();
467468

468469
mWithGeom = true;
469-
QgsAttributeList attrIndexes = provider->attributeIndexes();
470+
//QgsAttributeList attrIndexes = provider->attributeIndexes();
471+
QgsAttributeList attrIndexes = layer->pendingAllAttributesList();
470472

471473
QDomNodeList queryChildNodes = queryElem.childNodes();
472474
if ( queryChildNodes.size() )
@@ -804,12 +806,14 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format
804806

805807
QgsFeature feature;
806808
QgsAttributeMap featureAttributes;
807-
const QgsFields& fields = provider->fields();
809+
//const QgsFields& fields = provider->fields();
810+
const QgsFields& fields = layer->pendingFields();
808811

809812
//map extent
810813
searchRect = layer->extent();
811814

812-
QgsAttributeList attrIndexes = provider->attributeIndexes();
815+
//QgsAttributeList attrIndexes = provider->attributeIndexes();
816+
QgsAttributeList attrIndexes = layer->pendingAllAttributesList();
813817
if ( mPropertyName != "*" )
814818
{
815819
QStringList attrList = mPropertyName.split( "," );

0 commit comments

Comments
 (0)