@@ -169,7 +169,7 @@ QgsPostgresProvider::QgsPostgresProvider(QString const & uri)
169
169
// The queries inside this loop could possibly be combined into one
170
170
// single query - this would make the code run faster.
171
171
172
- for (int i = 0 ; i < PQnfields (result); i++)
172
+ for (int i= 0 ; i < PQnfields (result); i++)
173
173
{
174
174
QString fieldName = PQfname (result, i);
175
175
int fldtyp = PQftype (result, i);
@@ -199,19 +199,23 @@ QgsPostgresProvider::QgsPostgresProvider(QString const & uri)
199
199
fieldComment = PQgetvalue (tresult, 0 , 0 );
200
200
PQclear (tresult);
201
201
202
- QgsDebugMsg (" Field: " + attnum + " maps to " + QString::number (i ) + " " + fieldName + " , "
202
+ QgsDebugMsg (" Field: " + attnum + " maps to " + QString::number ( i ) + " " + fieldName + " , "
203
203
+ fieldTypeName + " (" + QString::number (fldtyp) + " ), " + fieldSize + " , " + QString::number (fieldModifier));
204
-
204
+
205
205
if (fieldName!=geometryColumn)
206
206
{
207
+
207
208
QVariant::Type fieldType;
208
209
if (fieldTypeName.find (" int" ) != -1 || fieldTypeName.find (" serial" ) != -1 )
209
210
fieldType = QVariant::Int;
210
211
else if (fieldTypeName == " real" || fieldTypeName == " double precision" || \
211
- fieldTypeName.find (" float" ) != -1 )
212
+ fieldTypeName.find (" float" ) != -1 )
212
213
fieldType = QVariant::Double;
213
- else
214
+ else if (fieldTypeName != " bytea " )
214
215
fieldType = QVariant::String;
216
+ else
217
+ continue ;
218
+
215
219
attributeFields.insert (i, QgsField (fieldName, fieldType, fieldTypeName, fieldSize.toInt (), fieldModifier, fieldComment));
216
220
}
217
221
}
@@ -541,7 +545,7 @@ void QgsPostgresProvider::select(QgsAttributeList fetchAttributes,
541
545
{
542
546
if ( (*it) != primaryKey) // no need to fetch primary key again
543
547
{
544
- declare += " ," + *it + " ::text" ;
548
+ declare += " ,\" " + *it + " \ " ::text" ;
545
549
}
546
550
}
547
551
@@ -635,7 +639,7 @@ bool QgsPostgresProvider::getFeatureAtId(int featureId,
635
639
{
636
640
if ( (*namesIt) != primaryKey) // no need to fetch primary key again
637
641
{
638
- sql += " ," + *namesIt + " ::text" ;
642
+ sql += " ,\" " + *namesIt + " \ " ::text" ;
639
643
}
640
644
}
641
645
0 commit comments