@@ -1219,22 +1219,7 @@ bool QgsPostgresProvider::determinePrimaryKey()
12191219 }
12201220 else
12211221 {
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 ();
12381223 }
12391224
12401225 mValid = mPrimaryKeyType != pktUnknown;
@@ -1299,7 +1284,7 @@ void QgsPostgresProvider::determinePrimaryKeyFromUriKeyColumn()
12991284 int idx = fieldNameIndex ( col );
13001285 if ( idx < 0 )
13011286 {
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" ) );
13031288 mPrimaryKeyAttrs .clear ();
13041289 break ;
13051290 }
@@ -1315,17 +1300,17 @@ void QgsPostgresProvider::determinePrimaryKeyFromUriKeyColumn()
13151300 }
13161301 else
13171302 {
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" ) );
13191304 }
13201305 }
13211306 else
13221307 {
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" ) );
13241309 }
13251310 }
13261311 else
13271312 {
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" ) );
13291314 }
13301315}
13311316
0 commit comments