summaryrefslogtreecommitdiff
path: root/src/backend/commands/conversioncmds.c
diff options
context:
space:
mode:
authorRobert Haas2011-10-20 03:25:20 +0000
committerRobert Haas2011-10-20 03:27:19 +0000
commit82a4a777d94bec965ab2f1d04b6e6a3f0447b377 (patch)
treeb3560173b695b8391ca81edf47c4b364005a608b /src/backend/commands/conversioncmds.c
parent3301c83536e9da1e573e24ded2e610062dbf9cdc (diff)
Consolidate DROP handling for some object types.
This gets rid of a significant amount of duplicative code. KaiGai Kohei, reviewed in earlier versions by Dimitri Fontaine, with further review and cleanup by me.
Diffstat (limited to 'src/backend/commands/conversioncmds.c')
-rw-r--r--src/backend/commands/conversioncmds.c61
1 files changed, 0 insertions, 61 deletions
diff --git a/src/backend/commands/conversioncmds.c b/src/backend/commands/conversioncmds.c
index cd7ae600ff6..7d6063de1a7 100644
--- a/src/backend/commands/conversioncmds.c
+++ b/src/backend/commands/conversioncmds.c
@@ -118,67 +118,6 @@ CreateConversionCommand(CreateConversionStmt *stmt)
}
/*
- * DROP CONVERSION
- */
-void
-DropConversionsCommand(DropStmt *drop)
-{
- ObjectAddresses *objects;
- ListCell *cell;
-
- /*
- * First we identify all the conversions, then we delete them in a single
- * performMultipleDeletions() call. This is to avoid unwanted DROP
- * RESTRICT errors if one of the conversions depends on another. (Not that
- * that is very likely, but we may as well do this consistently.)
- */
- objects = new_object_addresses();
-
- foreach(cell, drop->objects)
- {
- List *name = (List *) lfirst(cell);
- Oid conversionOid;
- HeapTuple tuple;
- Form_pg_conversion con;
- ObjectAddress object;
-
- conversionOid = get_conversion_oid(name, drop->missing_ok);
-
- if (!OidIsValid(conversionOid))
- {
- ereport(NOTICE,
- (errmsg("conversion \"%s\" does not exist, skipping",
- NameListToString(name))));
- continue;
- }
-
- tuple = SearchSysCache1(CONVOID, ObjectIdGetDatum(conversionOid));
- if (!HeapTupleIsValid(tuple))
- elog(ERROR, "cache lookup failed for conversion %u",
- conversionOid);
- con = (Form_pg_conversion) GETSTRUCT(tuple);
-
- /* Permission check: must own conversion or its namespace */
- if (!pg_conversion_ownercheck(conversionOid, GetUserId()) &&
- !pg_namespace_ownercheck(con->connamespace, GetUserId()))
- aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_CONVERSION,
- NameStr(con->conname));
-
- object.classId = ConversionRelationId;
- object.objectId = conversionOid;
- object.objectSubId = 0;
-
- add_exact_object_address(&object, objects);
-
- ReleaseSysCache(tuple);
- }
-
- performMultipleDeletions(objects, drop->behavior);
-
- free_object_addresses(objects);
-}
-
-/*
* Rename conversion
*/
void