diff options
author | Robert Haas | 2012-12-29 12:55:37 +0000 |
---|---|---|
committer | Robert Haas | 2012-12-29 12:55:37 +0000 |
commit | 82b1b213cad3a69cf5f3dfaa81687c14366960fc (patch) | |
tree | e19129f124c02d7ef274393d584de97cc18a5f66 /src/backend/commands/dbcommands.c | |
parent | 5ab3af46ddd2f2c2b248f1ffdb688b394d4bb387 (diff) |
Adjust more backend functions to return OID rather than void.
This is again intended to support extensions to the event trigger
functionality. This may go a bit further than we need for that
purpose, but there's some value in being consistent, and the OID
may be useful for other purposes also.
Dimitri Fontaine
Diffstat (limited to 'src/backend/commands/dbcommands.c')
-rw-r--r-- | src/backend/commands/dbcommands.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c index c390575f422..2b39a99c2b0 100644 --- a/src/backend/commands/dbcommands.c +++ b/src/backend/commands/dbcommands.c @@ -90,7 +90,7 @@ static int errdetail_busy_db(int notherbackends, int npreparedxacts); /* * CREATE DATABASE */ -void +Oid createdb(const CreatedbStmt *stmt) { HeapScanDesc scan; @@ -655,6 +655,8 @@ createdb(const CreatedbStmt *stmt) } PG_END_ENSURE_ERROR_CLEANUP(createdb_failure_callback, PointerGetDatum(&fparms)); + + return dboid; } /* @@ -1301,10 +1303,11 @@ movedb_failure_callback(int code, Datum arg) /* * ALTER DATABASE name ... */ -void +Oid AlterDatabase(AlterDatabaseStmt *stmt, bool isTopLevel) { Relation rel; + Oid dboid; HeapTuple tuple, newtuple; ScanKeyData scankey; @@ -1350,7 +1353,7 @@ AlterDatabase(AlterDatabaseStmt *stmt, bool isTopLevel) /* this case isn't allowed within a transaction block */ PreventTransactionChain(isTopLevel, "ALTER DATABASE SET TABLESPACE"); movedb(stmt->dbname, strVal(dtablespace->arg)); - return; + return InvalidOid; } if (dconnlimit) @@ -1380,6 +1383,8 @@ AlterDatabase(AlterDatabaseStmt *stmt, bool isTopLevel) (errcode(ERRCODE_UNDEFINED_DATABASE), errmsg("database \"%s\" does not exist", stmt->dbname))); + dboid = HeapTupleGetOid(tuple); + if (!pg_database_ownercheck(HeapTupleGetOid(tuple), GetUserId())) aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_DATABASE, stmt->dbname); @@ -1408,13 +1413,15 @@ AlterDatabase(AlterDatabaseStmt *stmt, bool isTopLevel) /* Close pg_database, but keep lock till commit */ heap_close(rel, NoLock); + + return dboid; } /* * ALTER DATABASE name SET ... */ -void +Oid AlterDatabaseSet(AlterDatabaseSetStmt *stmt) { Oid datid = get_database_oid(stmt->dbname, false); @@ -1432,6 +1439,8 @@ AlterDatabaseSet(AlterDatabaseSetStmt *stmt) AlterSetting(datid, InvalidOid, stmt->setstmt); UnlockSharedObject(DatabaseRelationId, datid, 0, AccessShareLock); + + return datid; } |