mirror of
https://github.com/qgis/QGIS.git
synced 2025-03-01 00:46:20 -05:00
When loading a query as a postgis layer the primary key may now also span multiple columns.
This commit is contained in:
parent
a721949040
commit
a4124da2a9
@ -1219,22 +1219,7 @@ bool QgsPostgresProvider::determinePrimaryKey()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QString primaryKey = mUri.keyColumn();
|
determinePrimaryKeyFromUriKeyColumn();
|
||||||
int idx = fieldNameIndex( mUri.keyColumn() );
|
|
||||||
|
|
||||||
if ( idx >= 0 && ( mAttributeFields[idx].type() == QVariant::Int || mAttributeFields[idx].type() == QVariant::LongLong ) )
|
|
||||||
{
|
|
||||||
if ( mUseEstimatedMetadata || uniqueData( mQuery, primaryKey ) )
|
|
||||||
{
|
|
||||||
mPrimaryKeyType = pktInt;
|
|
||||||
mPrimaryKeyAttrs << idx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
QgsMessageLog::logMessage( tr( "No key field for query given." ), tr( "PostGIS" ) );
|
|
||||||
mPrimaryKeyType = pktUnknown;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mValid = mPrimaryKeyType != pktUnknown;
|
mValid = mPrimaryKeyType != pktUnknown;
|
||||||
@ -1299,7 +1284,7 @@ void QgsPostgresProvider::determinePrimaryKeyFromUriKeyColumn()
|
|||||||
int idx = fieldNameIndex( col );
|
int idx = fieldNameIndex( col );
|
||||||
if ( idx < 0 )
|
if ( idx < 0 )
|
||||||
{
|
{
|
||||||
QgsMessageLog::logMessage( tr( "Key field '%1' for view not found." ).arg( col ), tr( "PostGIS" ) );
|
QgsMessageLog::logMessage( tr( "Key field '%1' for view/query not found." ).arg( col ), tr( "PostGIS" ) );
|
||||||
mPrimaryKeyAttrs.clear();
|
mPrimaryKeyAttrs.clear();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1315,17 +1300,17 @@ void QgsPostgresProvider::determinePrimaryKeyFromUriKeyColumn()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QgsMessageLog::logMessage( tr( "Primary key field '%1' for view not unique." ).arg( primaryKey ), tr( "PostGIS" ) );
|
QgsMessageLog::logMessage( tr( "Primary key field '%1' for view/query not unique." ).arg( primaryKey ), tr( "PostGIS" ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QgsMessageLog::logMessage( tr( "Keys for view undefined." ).arg( primaryKey ), tr( "PostGIS" ) );
|
QgsMessageLog::logMessage( tr( "Keys for view/query undefined." ).arg( primaryKey ), tr( "PostGIS" ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QgsMessageLog::logMessage( tr( "No key field for view given." ), tr( "PostGIS" ) );
|
QgsMessageLog::logMessage( tr( "No key field for view/query given." ), tr( "PostGIS" ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user