@@ -1219,22 +1219,7 @@ bool QgsPostgresProvider::determinePrimaryKey()
1219
1219
}
1220
1220
else
1221
1221
{
1222
- QString primaryKey = mUri .keyColumn ();
1223
- int idx = fieldNameIndex ( mUri .keyColumn () );
1224
-
1225
- if ( idx >= 0 && ( mAttributeFields [idx].type () == QVariant::Int || mAttributeFields [idx].type () == QVariant::LongLong ) )
1226
- {
1227
- if ( mUseEstimatedMetadata || uniqueData ( mQuery , primaryKey ) )
1228
- {
1229
- mPrimaryKeyType = pktInt;
1230
- mPrimaryKeyAttrs << idx;
1231
- }
1232
- }
1233
- else
1234
- {
1235
- QgsMessageLog::logMessage ( tr ( " No key field for query given." ), tr ( " PostGIS" ) );
1236
- mPrimaryKeyType = pktUnknown;
1237
- }
1222
+ determinePrimaryKeyFromUriKeyColumn ();
1238
1223
}
1239
1224
1240
1225
mValid = mPrimaryKeyType != pktUnknown;
@@ -1299,7 +1284,7 @@ void QgsPostgresProvider::determinePrimaryKeyFromUriKeyColumn()
1299
1284
int idx = fieldNameIndex ( col );
1300
1285
if ( idx < 0 )
1301
1286
{
1302
- QgsMessageLog::logMessage ( tr ( " Key field '%1' for view not found." ).arg ( col ), tr ( " PostGIS" ) );
1287
+ QgsMessageLog::logMessage ( tr ( " Key field '%1' for view/query not found." ).arg ( col ), tr ( " PostGIS" ) );
1303
1288
mPrimaryKeyAttrs .clear ();
1304
1289
break ;
1305
1290
}
@@ -1315,17 +1300,17 @@ void QgsPostgresProvider::determinePrimaryKeyFromUriKeyColumn()
1315
1300
}
1316
1301
else
1317
1302
{
1318
- QgsMessageLog::logMessage ( tr ( " Primary key field '%1' for view not unique." ).arg ( primaryKey ), tr ( " PostGIS" ) );
1303
+ QgsMessageLog::logMessage ( tr ( " Primary key field '%1' for view/query not unique." ).arg ( primaryKey ), tr ( " PostGIS" ) );
1319
1304
}
1320
1305
}
1321
1306
else
1322
1307
{
1323
- QgsMessageLog::logMessage ( tr ( " Keys for view undefined." ).arg ( primaryKey ), tr ( " PostGIS" ) );
1308
+ QgsMessageLog::logMessage ( tr ( " Keys for view/query undefined." ).arg ( primaryKey ), tr ( " PostGIS" ) );
1324
1309
}
1325
1310
}
1326
1311
else
1327
1312
{
1328
- QgsMessageLog::logMessage ( tr ( " No key field for view given." ), tr ( " PostGIS" ) );
1313
+ QgsMessageLog::logMessage ( tr ( " No key field for view/query given." ), tr ( " PostGIS" ) );
1329
1314
}
1330
1315
}
1331
1316
0 commit comments