summaryrefslogtreecommitdiff
path: root/src/backend/commands/dbcommands.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/commands/dbcommands.c')
-rw-r--r--src/backend/commands/dbcommands.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c
index 5e669619ba..8579136420 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;
}