diff options
Diffstat (limited to 'src/backend/commands/dbcommands.c')
-rw-r--r-- | src/backend/commands/dbcommands.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c index 5e669619bab..85791364205 100644 --- a/src/backend/commands/dbcommands.c +++ b/src/backend/commands/dbcommands.c @@ -938,7 +938,7 @@ dropdb(const char *dbname, bool missing_ok) /* * Rename database */ -Oid +ObjectAddress RenameDatabase(const char *oldname, const char *newname) { Oid db_id; @@ -946,6 +946,7 @@ RenameDatabase(const char *oldname, const char *newname) Relation rel; int notherbackends; int npreparedxacts; + ObjectAddress address; /* * Look up the target database's OID, and get exclusive lock on it. We @@ -1013,12 +1014,14 @@ RenameDatabase(const char *oldname, const char *newname) InvokeObjectPostAlterHook(DatabaseRelationId, db_id, 0); + ObjectAddressSet(address, DatabaseRelationId, db_id); + /* * Close pg_database, but keep lock till commit. */ heap_close(rel, NoLock); - return db_id; + return address; } @@ -1560,7 +1563,7 @@ AlterDatabaseSet(AlterDatabaseSetStmt *stmt) /* * ALTER DATABASE name OWNER TO newowner */ -Oid +ObjectAddress AlterDatabaseOwner(const char *dbname, Oid newOwnerId) { Oid db_id; @@ -1569,6 +1572,7 @@ AlterDatabaseOwner(const char *dbname, Oid newOwnerId) ScanKeyData scankey; SysScanDesc scan; Form_pg_database datForm; + ObjectAddress address; /* * Get the old tuple. We don't need a lock on the database per se, @@ -1663,12 +1667,14 @@ AlterDatabaseOwner(const char *dbname, Oid newOwnerId) InvokeObjectPostAlterHook(DatabaseRelationId, HeapTupleGetOid(tuple), 0); + ObjectAddressSet(address, DatabaseRelationId, db_id); + systable_endscan(scan); /* Close pg_database, but keep lock till commit */ heap_close(rel, NoLock); - return db_id; + return address; } |