Skip to content

Commit b630692

Browse files
committed
quote closing parens within column names (fixes #7159)
1 parent c036e7e commit b630692

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

src/core/qgsdatasourceuri.cpp

+11-1
Original file line numberDiff line numberDiff line change
@@ -102,14 +102,20 @@ QgsDataSourceURI::QgsDataSourceURI( QString uri )
102102
int start = i;
103103
QString col;
104104
while ( i < uri.length() && uri[i] != ')' )
105+
{
106+
if ( uri[i] == '\\' )
107+
i++;
105108
i++;
109+
}
106110

107111
if ( i == uri.length() )
108112
{
109113
QgsDebugMsg( "closing parenthesis missing" );
110114
}
111115

112116
mGeometryColumn = uri.mid( start, i - start );
117+
mGeometryColumn.replace( "\\)", ")" );
118+
mGeometryColumn.replace( "\\\\", "\\" );
113119

114120
i++;
115121
}
@@ -584,9 +590,13 @@ QString QgsDataSourceURI::uri() const
584590
theUri += QString( " selectatid=false" );
585591
}
586592

593+
QString columnName( mGeometryColumn );
594+
columnName.replace( "\\", "\\\\" );
595+
columnName.replace( ")", "\\)" );
596+
587597
theUri += QString( " table=%1%2 sql=%3" )
588598
.arg( quotedTablename() )
589-
.arg( mGeometryColumn.isNull() ? QString() : QString( " (%1)" ).arg( mGeometryColumn ) )
599+
.arg( mGeometryColumn.isNull() ? QString() : QString( " (%1)" ).arg( columnName ) )
590600
.arg( mSql );
591601

592602
return theUri;

0 commit comments

Comments
 (0)