aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/foreigncmds.c
diff options
context:
space:
mode:
authorAlvaro Herrera <alvherre@alvh.no-ip.org>2013-01-21 12:06:41 -0300
committerAlvaro Herrera <alvherre@alvh.no-ip.org>2013-01-21 12:06:41 -0300
commit765cbfdc9263bf7c90b9d1f1044c6950b8b7088c (patch)
treeb7fc0ebfb2be1d051c2c223f5215239aeb3c1558 /src/backend/commands/foreigncmds.c
parent8f0d8f481e86514bb35538827df7e1e35baee368 (diff)
downloadpostgresql-765cbfdc9263bf7c90b9d1f1044c6950b8b7088c.tar.gz
postgresql-765cbfdc9263bf7c90b9d1f1044c6950b8b7088c.zip
Refactor ALTER some-obj RENAME implementation
Remove duplicate implementations of catalog munging and miscellaneous privilege checks. Instead rely on already existing data in objectaddress.c to do the work. Author: KaiGai Kohei, changes by me Reviewed by: Robert Haas, Álvaro Herrera, Dimitri Fontaine
Diffstat (limited to 'src/backend/commands/foreigncmds.c')
-rw-r--r--src/backend/commands/foreigncmds.c87
1 files changed, 0 insertions, 87 deletions
diff --git a/src/backend/commands/foreigncmds.c b/src/backend/commands/foreigncmds.c
index d3af8dc22ab..7700e91c821 100644
--- a/src/backend/commands/foreigncmds.c
+++ b/src/backend/commands/foreigncmds.c
@@ -200,93 +200,6 @@ GetUserOidFromMapping(const char *username, bool missing_ok)
return get_role_oid(username, missing_ok);
}
-
-/*
- * Rename foreign-data wrapper
- */
-Oid
-RenameForeignDataWrapper(const char *oldname, const char *newname)
-{
- Oid fdwId;
- HeapTuple tup;
- Relation rel;
-
- rel = heap_open(ForeignDataWrapperRelationId, RowExclusiveLock);
-
- tup = SearchSysCacheCopy1(FOREIGNDATAWRAPPERNAME, CStringGetDatum(oldname));
- if (!HeapTupleIsValid(tup))
- ereport(ERROR,
- (errcode(ERRCODE_UNDEFINED_OBJECT),
- errmsg("foreign-data wrapper \"%s\" does not exist", oldname)));
-
- fdwId = HeapTupleGetOid(tup);
-
- /* make sure the new name doesn't exist */
- if (SearchSysCacheExists1(FOREIGNDATAWRAPPERNAME, CStringGetDatum(newname)))
- ereport(ERROR,
- (errcode(ERRCODE_DUPLICATE_OBJECT),
- errmsg("foreign-data wrapper \"%s\" already exists", newname)));
-
- /* must be owner of FDW */
- if (!pg_foreign_data_wrapper_ownercheck(HeapTupleGetOid(tup), GetUserId()))
- aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_FDW,
- oldname);
-
- /* rename */
- namestrcpy(&(((Form_pg_foreign_data_wrapper) GETSTRUCT(tup))->fdwname), newname);
- simple_heap_update(rel, &tup->t_self, tup);
- CatalogUpdateIndexes(rel, tup);
-
- heap_close(rel, NoLock);
- heap_freetuple(tup);
-
- return fdwId;
-}
-
-
-/*
- * Rename foreign server
- */
-Oid
-RenameForeignServer(const char *oldname, const char *newname)
-{
- Oid srvId;
- HeapTuple tup;
- Relation rel;
-
- rel = heap_open(ForeignServerRelationId, RowExclusiveLock);
-
- tup = SearchSysCacheCopy1(FOREIGNSERVERNAME, CStringGetDatum(oldname));
- if (!HeapTupleIsValid(tup))
- ereport(ERROR,
- (errcode(ERRCODE_UNDEFINED_OBJECT),
- errmsg("server \"%s\" does not exist", oldname)));
-
- srvId = HeapTupleGetOid(tup);
-
- /* make sure the new name doesn't exist */
- if (SearchSysCacheExists1(FOREIGNSERVERNAME, CStringGetDatum(newname)))
- ereport(ERROR,
- (errcode(ERRCODE_DUPLICATE_OBJECT),
- errmsg("server \"%s\" already exists", newname)));
-
- /* must be owner of server */
- if (!pg_foreign_server_ownercheck(HeapTupleGetOid(tup), GetUserId()))
- aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_FOREIGN_SERVER,
- oldname);
-
- /* rename */
- namestrcpy(&(((Form_pg_foreign_server) GETSTRUCT(tup))->srvname), newname);
- simple_heap_update(rel, &tup->t_self, tup);
- CatalogUpdateIndexes(rel, tup);
-
- heap_close(rel, NoLock);
- heap_freetuple(tup);
-
- return srvId;
-}
-
-
/*
* Internal workhorse for changing a data wrapper's owner.
*