aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/alter.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/commands/alter.c')
-rw-r--r--src/backend/commands/alter.c127
1 files changed, 52 insertions, 75 deletions
diff --git a/src/backend/commands/alter.c b/src/backend/commands/alter.c
index 9e271c3e596..d8555ed4c7f 100644
--- a/src/backend/commands/alter.c
+++ b/src/backend/commands/alter.c
@@ -50,112 +50,90 @@
* Executes an ALTER OBJECT / RENAME TO statement. Based on the object
* type, the function appropriate to that type is executed.
*/
-void
+Oid
ExecRenameStmt(RenameStmt *stmt)
{
switch (stmt->renameType)
{
case OBJECT_AGGREGATE:
- RenameAggregate(stmt->object, stmt->objarg, stmt->newname);
- break;
+ return RenameAggregate(stmt->object, stmt->objarg, stmt->newname);
case OBJECT_COLLATION:
- RenameCollation(stmt->object, stmt->newname);
- break;
+ return RenameCollation(stmt->object, stmt->newname);
case OBJECT_CONSTRAINT:
- RenameConstraint(stmt);
- break;
+ return RenameConstraint(stmt);
case OBJECT_CONVERSION:
- RenameConversion(stmt->object, stmt->newname);
- break;
+ return RenameConversion(stmt->object, stmt->newname);
case OBJECT_DATABASE:
- RenameDatabase(stmt->subname, stmt->newname);
- break;
+ return RenameDatabase(stmt->subname, stmt->newname);
case OBJECT_FDW:
- RenameForeignDataWrapper(stmt->subname, stmt->newname);
- break;
+ return RenameForeignDataWrapper(stmt->subname, stmt->newname);
case OBJECT_FOREIGN_SERVER:
- RenameForeignServer(stmt->subname, stmt->newname);
- break;
+ return RenameForeignServer(stmt->subname, stmt->newname);
case OBJECT_EVENT_TRIGGER:
- RenameEventTrigger(stmt->subname, stmt->newname);
- break;
+ return RenameEventTrigger(stmt->subname, stmt->newname);
case OBJECT_FUNCTION:
- RenameFunction(stmt->object, stmt->objarg, stmt->newname);
- break;
+ return RenameFunction(stmt->object, stmt->objarg, stmt->newname);
case OBJECT_LANGUAGE:
- RenameLanguage(stmt->subname, stmt->newname);
- break;
+ return RenameLanguage(stmt->subname, stmt->newname);
case OBJECT_OPCLASS:
- RenameOpClass(stmt->object, stmt->subname, stmt->newname);
- break;
+ return RenameOpClass(stmt->object, stmt->subname, stmt->newname);
case OBJECT_OPFAMILY:
- RenameOpFamily(stmt->object, stmt->subname, stmt->newname);
- break;
+ return RenameOpFamily(stmt->object, stmt->subname, stmt->newname);
case OBJECT_ROLE:
- RenameRole(stmt->subname, stmt->newname);
- break;
+ return RenameRole(stmt->subname, stmt->newname);
case OBJECT_SCHEMA:
- RenameSchema(stmt->subname, stmt->newname);
- break;
+ return RenameSchema(stmt->subname, stmt->newname);
case OBJECT_TABLESPACE:
- RenameTableSpace(stmt->subname, stmt->newname);
- break;
+ return RenameTableSpace(stmt->subname, stmt->newname);
case OBJECT_TABLE:
case OBJECT_SEQUENCE:
case OBJECT_VIEW:
case OBJECT_INDEX:
case OBJECT_FOREIGN_TABLE:
- RenameRelation(stmt);
- break;
+ return RenameRelation(stmt);
case OBJECT_COLUMN:
case OBJECT_ATTRIBUTE:
- renameatt(stmt);
- break;
+ return renameatt(stmt);
case OBJECT_TRIGGER:
- renametrig(stmt);
- break;
+ return renametrig(stmt);
case OBJECT_TSPARSER:
- RenameTSParser(stmt->object, stmt->newname);
- break;
+ return RenameTSParser(stmt->object, stmt->newname);
case OBJECT_TSDICTIONARY:
- RenameTSDictionary(stmt->object, stmt->newname);
- break;
+ return RenameTSDictionary(stmt->object, stmt->newname);
case OBJECT_TSTEMPLATE:
- RenameTSTemplate(stmt->object, stmt->newname);
- break;
+ return RenameTSTemplate(stmt->object, stmt->newname);
case OBJECT_TSCONFIGURATION:
- RenameTSConfiguration(stmt->object, stmt->newname);
- break;
+ return RenameTSConfiguration(stmt->object, stmt->newname);
case OBJECT_DOMAIN:
case OBJECT_TYPE:
- RenameType(stmt);
- break;
+ return RenameType(stmt);
default:
elog(ERROR, "unrecognized rename stmt type: %d",
(int) stmt->renameType);
+ return InvalidOid; /* keep compiler happy */
}
}
@@ -163,40 +141,35 @@ ExecRenameStmt(RenameStmt *stmt)
* Executes an ALTER OBJECT / SET SCHEMA statement. Based on the object
* type, the function appropriate to that type is executed.
*/
-void
+Oid
ExecAlterObjectSchemaStmt(AlterObjectSchemaStmt *stmt)
{
switch (stmt->objectType)
{
case OBJECT_AGGREGATE:
- AlterFunctionNamespace(stmt->object, stmt->objarg, true,
- stmt->newschema);
- break;
+ return AlterFunctionNamespace(stmt->object, stmt->objarg, true,
+ stmt->newschema);
case OBJECT_COLLATION:
- AlterCollationNamespace(stmt->object, stmt->newschema);
- break;
+ return AlterCollationNamespace(stmt->object, stmt->newschema);
case OBJECT_EXTENSION:
- AlterExtensionNamespace(stmt->object, stmt->newschema);
- break;
+ return AlterExtensionNamespace(stmt->object, stmt->newschema);
case OBJECT_FUNCTION:
- AlterFunctionNamespace(stmt->object, stmt->objarg, false,
- stmt->newschema);
- break;
+ return AlterFunctionNamespace(stmt->object, stmt->objarg, false,
+ stmt->newschema);
case OBJECT_SEQUENCE:
case OBJECT_TABLE:
case OBJECT_VIEW:
case OBJECT_FOREIGN_TABLE:
- AlterTableNamespace(stmt);
- break;
+ return AlterTableNamespace(stmt);
case OBJECT_TYPE:
case OBJECT_DOMAIN:
- AlterTypeNamespace(stmt->object, stmt->newschema, stmt->objectType);
- break;
+ return AlterTypeNamespace(stmt->object, stmt->newschema,
+ stmt->objectType);
/* generic code path */
case OBJECT_CONVERSION:
@@ -228,12 +201,15 @@ ExecAlterObjectSchemaStmt(AlterObjectSchemaStmt *stmt)
AlterObjectNamespace_internal(catalog, address.objectId,
nspOid);
heap_close(catalog, RowExclusiveLock);
+
+ return address.objectId;
}
break;
default:
elog(ERROR, "unrecognized AlterObjectSchemaStmt type: %d",
(int) stmt->objectType);
+ return InvalidOid; /* keep compiler happy */
}
}
@@ -435,7 +411,7 @@ AlterObjectNamespace_internal(Relation rel, Oid objid, Oid nspOid)
* Executes an ALTER OBJECT / OWNER TO statement. Based on the object
* type, the function appropriate to that type is executed.
*/
-void
+Oid
ExecAlterOwnerStmt(AlterOwnerStmt *stmt)
{
Oid newowner = get_role_oid(stmt->newowner, false);
@@ -443,30 +419,27 @@ ExecAlterOwnerStmt(AlterOwnerStmt *stmt)
switch (stmt->objectType)
{
case OBJECT_DATABASE:
- AlterDatabaseOwner(strVal(linitial(stmt->object)), newowner);
- break;
+ return AlterDatabaseOwner(strVal(linitial(stmt->object)), newowner);
case OBJECT_SCHEMA:
- AlterSchemaOwner(strVal(linitial(stmt->object)), newowner);
- break;
+ return AlterSchemaOwner(strVal(linitial(stmt->object)), newowner);
case OBJECT_TYPE:
case OBJECT_DOMAIN: /* same as TYPE */
- AlterTypeOwner(stmt->object, newowner, stmt->objectType);
+ return AlterTypeOwner(stmt->object, newowner, stmt->objectType);
break;
case OBJECT_FDW:
- AlterForeignDataWrapperOwner(strVal(linitial(stmt->object)),
- newowner);
- break;
+ return AlterForeignDataWrapperOwner(strVal(linitial(stmt->object)),
+ newowner);
case OBJECT_FOREIGN_SERVER:
- AlterForeignServerOwner(strVal(linitial(stmt->object)), newowner);
- break;
+ return AlterForeignServerOwner(strVal(linitial(stmt->object)),
+ newowner);
case OBJECT_EVENT_TRIGGER:
- AlterEventTriggerOwner(strVal(linitial(stmt->object)), newowner);
- break;
+ return AlterEventTriggerOwner(strVal(linitial(stmt->object)),
+ newowner);
/* Generic cases */
case OBJECT_AGGREGATE:
@@ -508,12 +481,16 @@ ExecAlterOwnerStmt(AlterOwnerStmt *stmt)
AlterObjectOwner_internal(catalog, address.objectId, newowner);
heap_close(catalog, RowExclusiveLock);
+
+ return address.objectId;
}
break;
default:
elog(ERROR, "unrecognized AlterOwnerStmt type: %d",
(int) stmt->objectType);
+
+ return InvalidOid; /* keep compiler happy */
}
}