aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/schemacmds.c
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2012-12-23 18:25:03 -0500
committerRobert Haas <rhaas@postgresql.org>2012-12-23 18:37:58 -0500
commitc504513f83a9ee8dce4a719746ca73102cae9f13 (patch)
tree3664999ca3242003181bef1fa171e28fe557ecb9 /src/backend/commands/schemacmds.c
parent31bc839724439440b2e94ea616b28ce5be94e19c (diff)
downloadpostgresql-c504513f83a9ee8dce4a719746ca73102cae9f13.tar.gz
postgresql-c504513f83a9ee8dce4a719746ca73102cae9f13.zip
Adjust many backend functions to return OID rather than void.
Extracted from a larger patch by Dimitri Fontaine. It is hoped that this will provide infrastructure for enriching the new event trigger functionality, but it seems possibly useful for other purposes as well.
Diffstat (limited to 'src/backend/commands/schemacmds.c')
-rw-r--r--src/backend/commands/schemacmds.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/backend/commands/schemacmds.c b/src/backend/commands/schemacmds.c
index e69c86bbabf..4aff37fffd2 100644
--- a/src/backend/commands/schemacmds.c
+++ b/src/backend/commands/schemacmds.c
@@ -38,7 +38,7 @@ static void AlterSchemaOwner_internal(HeapTuple tup, Relation rel, Oid newOwnerI
/*
* CREATE SCHEMA
*/
-void
+Oid
CreateSchemaCommand(CreateSchemaStmt *stmt, const char *queryString)
{
const char *schemaName = stmt->schemaname;
@@ -97,7 +97,7 @@ CreateSchemaCommand(CreateSchemaStmt *stmt, const char *queryString)
(errcode(ERRCODE_DUPLICATE_SCHEMA),
errmsg("schema \"%s\" already exists, skipping",
schemaName)));
- return;
+ return InvalidOid;
}
/*
@@ -163,6 +163,8 @@ CreateSchemaCommand(CreateSchemaStmt *stmt, const char *queryString)
/* Reset current user and security context */
SetUserIdAndSecContext(saved_uid, save_sec_context);
+
+ return namespaceId;
}
/*
@@ -192,9 +194,10 @@ RemoveSchemaById(Oid schemaOid)
/*
* Rename schema
*/
-void
+Oid
RenameSchema(const char *oldname, const char *newname)
{
+ Oid nspOid;
HeapTuple tup;
Relation rel;
AclResult aclresult;
@@ -207,6 +210,8 @@ RenameSchema(const char *oldname, const char *newname)
(errcode(ERRCODE_UNDEFINED_SCHEMA),
errmsg("schema \"%s\" does not exist", oldname)));
+ nspOid = HeapTupleGetOid(tup);
+
/* make sure the new name doesn't exist */
if (OidIsValid(get_namespace_oid(newname, true)))
ereport(ERROR,
@@ -237,6 +242,8 @@ RenameSchema(const char *oldname, const char *newname)
heap_close(rel, NoLock);
heap_freetuple(tup);
+
+ return nspOid;
}
void
@@ -262,9 +269,10 @@ AlterSchemaOwner_oid(Oid oid, Oid newOwnerId)
/*
* Change schema owner
*/
-void
+Oid
AlterSchemaOwner(const char *name, Oid newOwnerId)
{
+ Oid nspOid;
HeapTuple tup;
Relation rel;
@@ -276,11 +284,15 @@ AlterSchemaOwner(const char *name, Oid newOwnerId)
(errcode(ERRCODE_UNDEFINED_SCHEMA),
errmsg("schema \"%s\" does not exist", name)));
+ nspOid = HeapTupleGetOid(tup);
+
AlterSchemaOwner_internal(tup, rel, newOwnerId);
ReleaseSysCache(tup);
heap_close(rel, RowExclusiveLock);
+
+ return nspOid;
}
static void