mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-15 00:04:00 -04:00
postgres provider: drop implicit not null and unique constraint for columns in compound keys (fixes #20073)
This commit is contained in:
parent
59dd85103d
commit
2826ba34f9
@ -1054,9 +1054,9 @@ bool QgsPostgresProvider::loadFields()
|
||||
QgsField newField = QgsField( fieldName, fieldType, fieldTypeName, fieldSize, fieldPrec, fieldComment, fieldSubType );
|
||||
|
||||
QgsFieldConstraints constraints;
|
||||
if ( notNullMap[tableoid][attnum] || mPrimaryKeyAttrs.contains( i ) )
|
||||
if ( notNullMap[tableoid][attnum] || ( mPrimaryKeyAttrs.size() == 1 && mPrimaryKeyAttrs[0] == i ) || identityMap[tableoid][attnum] != ' ' )
|
||||
constraints.setConstraint( QgsFieldConstraints::ConstraintNotNull, QgsFieldConstraints::ConstraintOriginProvider );
|
||||
if ( uniqueMap[tableoid][attnum] || mPrimaryKeyAttrs.contains( i ) )
|
||||
if ( uniqueMap[tableoid][attnum] || ( mPrimaryKeyAttrs.size() == 1 && mPrimaryKeyAttrs[0] == i ) || identityMap[tableoid][attnum] != ' ' )
|
||||
constraints.setConstraint( QgsFieldConstraints::ConstraintUnique, QgsFieldConstraints::ConstraintOriginProvider );
|
||||
newField.setConstraints( constraints );
|
||||
|
||||
@ -1453,13 +1453,13 @@ bool QgsPostgresProvider::determinePrimaryKey()
|
||||
determinePrimaryKeyFromUriKeyColumn();
|
||||
}
|
||||
|
||||
Q_FOREACH ( int fieldIdx, mPrimaryKeyAttrs )
|
||||
if ( mPrimaryKeyAttrs.size() == 1 )
|
||||
{
|
||||
//primary keys are unique, not null
|
||||
QgsFieldConstraints constraints = mAttributeFields.at( fieldIdx ).constraints();
|
||||
QgsFieldConstraints constraints = mAttributeFields.at( mPrimaryKeyAttrs[0] ).constraints();
|
||||
constraints.setConstraint( QgsFieldConstraints::ConstraintUnique, QgsFieldConstraints::ConstraintOriginProvider );
|
||||
constraints.setConstraint( QgsFieldConstraints::ConstraintNotNull, QgsFieldConstraints::ConstraintOriginProvider );
|
||||
mAttributeFields[ fieldIdx ].setConstraints( constraints );
|
||||
mAttributeFields[ mPrimaryKeyAttrs[0] ].setConstraints( constraints );
|
||||
}
|
||||
|
||||
mValid = mPrimaryKeyType != PktUnknown;
|
||||
|
Loading…
x
Reference in New Issue
Block a user