diff options
| author | Robert Haas | 2011-10-20 03:25:20 +0000 |
|---|---|---|
| committer | Robert Haas | 2011-10-20 03:27:19 +0000 |
| commit | 82a4a777d94bec965ab2f1d04b6e6a3f0447b377 (patch) | |
| tree | b3560173b695b8391ca81edf47c4b364005a608b /src/backend/commands/conversioncmds.c | |
| parent | 3301c83536e9da1e573e24ded2e610062dbf9cdc (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.c | 61 |
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 |
