enable renaming of field

This commit is contained in:
Jan Caha 2025-05-15 22:00:31 +02:00 committed by Nyall Dawson
parent 14f4fc7fa7
commit 45bf4583cb
2 changed files with 9 additions and 1 deletions

View File

@ -115,7 +115,8 @@ void QgsPostgresProviderConnection::setDefaultCapabilities()
Capability::DeleteSpatialIndex,
Capability::DeleteField,
Capability::DeleteFieldCascade,
Capability::AddField
Capability::AddField,
Capability::RenameField
};
mGeometryColumnCapabilities = {
GeometryColumnCapability::Z,
@ -1935,3 +1936,9 @@ QgsFields QgsPostgresProviderConnection::fields( const QString &schema, const QS
throw ex;
}
}
void QgsPostgresProviderConnection::renameField( const QString &schema, const QString &tableName, const QString &name, const QString &newName ) const
{
executeSqlPrivate( QStringLiteral( "ALTER TABLE %1.%2 RENAME COLUMN %3 TO %4;" )
.arg( QgsPostgresConn::quotedIdentifier( schema ), QgsPostgresConn::quotedIdentifier( tableName ), QgsPostgresConn::quotedIdentifier( name ), QgsPostgresConn::quotedIdentifier( newName ) ) );
}

View File

@ -76,6 +76,7 @@ class QgsPostgresProviderConnection : public QgsAbstractDatabaseProviderConnecti
QList<QgsLayerMetadataProviderResult> searchLayerMetadata( const QgsMetadataSearchContext &searchContext, const QString &searchString, const QgsRectangle &geographicExtent, QgsFeedback *feedback ) const override;
Qgis::DatabaseProviderTableImportCapabilities tableImportCapabilities() const override;
QString defaultPrimaryKeyColumnName() const override;
void renameField( const QString &schema, const QString &tableName, const QString &name, const QString &newName ) const override;
static const QStringList CONFIGURATION_PARAMETERS;
static const QString SETTINGS_BASE_KEY;