diff options
Diffstat (limited to 'src/backend/commands/alter.c')
-rw-r--r-- | src/backend/commands/alter.c | 62 |
1 files changed, 9 insertions, 53 deletions
diff --git a/src/backend/commands/alter.c b/src/backend/commands/alter.c index f9be3a9a4ec..2954bb27dd9 100644 --- a/src/backend/commands/alter.c +++ b/src/backend/commands/alter.c @@ -105,62 +105,18 @@ ExecRenameStmt(RenameStmt *stmt) case OBJECT_SEQUENCE: case OBJECT_VIEW: case OBJECT_INDEX: + case OBJECT_FOREIGN_TABLE: + RenameRelation(stmt); + break; + case OBJECT_COLUMN: case OBJECT_ATTRIBUTE: + renameatt(stmt); + break; + case OBJECT_TRIGGER: - case OBJECT_FOREIGN_TABLE: - { - Oid relid; - - CheckRelationOwnership(stmt->relation, true); - - /* - * Lock level used here should match what will be taken later, - * in RenameRelation, renameatt, or renametrig. - */ - relid = RangeVarGetRelid(stmt->relation, AccessExclusiveLock, - false); - - switch (stmt->renameType) - { - case OBJECT_TABLE: - case OBJECT_SEQUENCE: - case OBJECT_VIEW: - case OBJECT_INDEX: - case OBJECT_FOREIGN_TABLE: - { - /* - * RENAME TABLE requires that we (still) hold - * CREATE rights on the containing namespace, as - * well as ownership of the table. - */ - Oid namespaceId = get_rel_namespace(relid); - AclResult aclresult; - - aclresult = pg_namespace_aclcheck(namespaceId, - GetUserId(), - ACL_CREATE); - if (aclresult != ACLCHECK_OK) - aclcheck_error(aclresult, ACL_KIND_NAMESPACE, - get_namespace_name(namespaceId)); - - RenameRelation(relid, stmt->newname, stmt->renameType); - break; - } - case OBJECT_COLUMN: - case OBJECT_ATTRIBUTE: - renameatt(relid, stmt); - break; - case OBJECT_TRIGGER: - renametrig(relid, - stmt->subname, /* old att name */ - stmt->newname); /* new att name */ - break; - default: - /* can't happen */ ; - } - break; - } + renametrig(stmt); + break; case OBJECT_TSPARSER: RenameTSParser(stmt->object, stmt->newname); |