From 6f8bed820b3e50076f308d3e426a871dafc364f9 Mon Sep 17 00:00:00 2001 From: Alessandro Pasotti Date: Fri, 29 Oct 2021 16:50:43 +0200 Subject: [PATCH] Address PR comments --- src/server/services/wms/qgswmsrenderer.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/server/services/wms/qgswmsrenderer.cpp b/src/server/services/wms/qgswmsrenderer.cpp index 96d4619430c..520ed5d4353 100644 --- a/src/server/services/wms/qgswmsrenderer.cpp +++ b/src/server/services/wms/qgswmsrenderer.cpp @@ -362,13 +362,16 @@ namespace QgsWms else { const QgsAttributeList pkIndexes = cLayer->primaryKeyAttributes(); - const int pkIndexesSize {std::max( pkIndexes.size(), 1 )}; - if ( pkIndexesSize == 0 ) + if ( pkIndexes.size() == 0 ) { QgsDebugMsgLevel( QStringLiteral( "Atlas print: layer %1 has no primary key attributes" ).arg( cLayer->name() ), 2 ); } + + // Handles the pk-less case + const int pkIndexesSize {std::max( pkIndexes.size(), 1 )}; + QStringList pkAttributeNames; - for ( int pkIndex : pkIndexes ) + for ( int pkIndex : std::as_const( pkIndexes ) ) { pkAttributeNames.append( cLayer->fields().at( pkIndex ).name() ); } @@ -414,7 +417,7 @@ namespace QgsWms { filterString.append( " AND " ); } - filterString.append( QStringLiteral( "\"%1\" = %2" ).arg( pkAttributeNames.at( j ), atlasPk.at( currentAtlasPk ) ) ); + filterString.append( QgsExpression::createFieldEqualityExpression( pkAttributeNames.at( j ), atlasPk.at( currentAtlasPk ) ) ); ++currentAtlasPk; } }