Skip to content

Commit f2c4f53

Browse files
author
Hugo Mercier
committed
refs #5536
Escape field names in refine rules functions
1 parent cd97d82 commit f2c4f53

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/core/symbology-ng/qgsrulebasedrendererv2.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -803,7 +803,9 @@ void QgsRuleBasedRendererV2::refineRuleCategories( QgsRuleBasedRendererV2::Rule*
803803
{
804804
foreach( const QgsRendererCategoryV2& cat, r->categories() )
805805
{
806-
QString filter = QString( "%1 = '%2'" ).arg( r->classAttribute() ).arg( cat.value().toString() );
806+
// replace simple "double quotes" by double "double quotes" in field name
807+
QString escapedId = r->classAttribute().replace(QString("\""), QString("\"\""));
808+
QString filter = QString( "\"%1\" = '%2'" ).arg( escapedId ).arg( cat.value().toString() );
807809
QString label = filter;
808810
initialRule->appendChild( new Rule( cat.symbol()->clone(), 0, 0, filter, label ) );
809811
}
@@ -813,7 +815,9 @@ void QgsRuleBasedRendererV2::refineRuleRanges( QgsRuleBasedRendererV2::Rule* ini
813815
{
814816
foreach( const QgsRendererRangeV2& rng, r->ranges() )
815817
{
816-
QString filter = QString( "%1 >= '%2' AND %1 <= '%3'" ).arg( r->classAttribute() ).arg( rng.lowerValue() ).arg( rng.upperValue() );
818+
// replace simple "double quotes" by double "double quotes" in field name
819+
QString escapedId = r->classAttribute().replace(QString("\""), QString("\"\""));
820+
QString filter = QString( "\"%1\" >= '%2' AND \"%1\" <= '%3'" ).arg( escapedId ).arg( rng.lowerValue() ).arg( rng.upperValue() );
817821
QString label = filter;
818822
initialRule->appendChild( new Rule( rng.symbol()->clone(), 0, 0, filter, label ) );
819823
}

0 commit comments

Comments
 (0)