aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/opclasscmds.c
diff options
context:
space:
mode:
authorPeter Eisentraut <peter@eisentraut.org>2020-06-09 09:10:14 +0200
committerPeter Eisentraut <peter@eisentraut.org>2020-06-09 09:39:46 +0200
commitb1d32d3e3230f00b5baba08f75b4f665c7d6dac6 (patch)
tree9b0b6bba1aab417382105d09fc2800f346c7ce2b /src/backend/commands/opclasscmds.c
parentb27c90bbe4a3d607f8fc6703c7183e56e4039acd (diff)
downloadpostgresql-b1d32d3e3230f00b5baba08f75b4f665c7d6dac6.tar.gz
postgresql-b1d32d3e3230f00b5baba08f75b4f665c7d6dac6.zip
Unify drop-by-OID functions
There are a number of Remove${Something}ById() functions that are essentially identical in structure and only different in which catalog they are working on. Refactor this to be one generic function. The information about which oid column, index, etc. to use was already available in ObjectProperty for most catalogs, in a few cases it was easily added. Reviewed-by: Pavel Stehule <pavel.stehule@gmail.com> Reviewed-by: Robert Haas <robertmhaas@gmail.com> Discussion: https://www.postgresql.org/message-id/flat/331d9661-1743-857f-1cbb-d5728bcd62cb%402ndquadrant.com
Diffstat (limited to 'src/backend/commands/opclasscmds.c')
-rw-r--r--src/backend/commands/opclasscmds.c99
1 files changed, 0 insertions, 99 deletions
diff --git a/src/backend/commands/opclasscmds.c b/src/backend/commands/opclasscmds.c
index 7d44d3a049b..351866f9f22 100644
--- a/src/backend/commands/opclasscmds.c
+++ b/src/backend/commands/opclasscmds.c
@@ -1658,105 +1658,6 @@ dropProcedures(List *opfamilyname, Oid amoid, Oid opfamilyoid,
}
/*
- * Deletion subroutines for use by dependency.c.
- */
-void
-RemoveOpFamilyById(Oid opfamilyOid)
-{
- Relation rel;
- HeapTuple tup;
-
- rel = table_open(OperatorFamilyRelationId, RowExclusiveLock);
-
- tup = SearchSysCache1(OPFAMILYOID, ObjectIdGetDatum(opfamilyOid));
- if (!HeapTupleIsValid(tup)) /* should not happen */
- elog(ERROR, "cache lookup failed for opfamily %u", opfamilyOid);
-
- CatalogTupleDelete(rel, &tup->t_self);
-
- ReleaseSysCache(tup);
-
- table_close(rel, RowExclusiveLock);
-}
-
-void
-RemoveOpClassById(Oid opclassOid)
-{
- Relation rel;
- HeapTuple tup;
-
- rel = table_open(OperatorClassRelationId, RowExclusiveLock);
-
- tup = SearchSysCache1(CLAOID, ObjectIdGetDatum(opclassOid));
- if (!HeapTupleIsValid(tup)) /* should not happen */
- elog(ERROR, "cache lookup failed for opclass %u", opclassOid);
-
- CatalogTupleDelete(rel, &tup->t_self);
-
- ReleaseSysCache(tup);
-
- table_close(rel, RowExclusiveLock);
-}
-
-void
-RemoveAmOpEntryById(Oid entryOid)
-{
- Relation rel;
- HeapTuple tup;
- ScanKeyData skey[1];
- SysScanDesc scan;
-
- ScanKeyInit(&skey[0],
- Anum_pg_amop_oid,
- BTEqualStrategyNumber, F_OIDEQ,
- ObjectIdGetDatum(entryOid));
-
- rel = table_open(AccessMethodOperatorRelationId, RowExclusiveLock);
-
- scan = systable_beginscan(rel, AccessMethodOperatorOidIndexId, true,
- NULL, 1, skey);
-
- /* we expect exactly one match */
- tup = systable_getnext(scan);
- if (!HeapTupleIsValid(tup))
- elog(ERROR, "could not find tuple for amop entry %u", entryOid);
-
- CatalogTupleDelete(rel, &tup->t_self);
-
- systable_endscan(scan);
- table_close(rel, RowExclusiveLock);
-}
-
-void
-RemoveAmProcEntryById(Oid entryOid)
-{
- Relation rel;
- HeapTuple tup;
- ScanKeyData skey[1];
- SysScanDesc scan;
-
- ScanKeyInit(&skey[0],
- Anum_pg_amproc_oid,
- BTEqualStrategyNumber, F_OIDEQ,
- ObjectIdGetDatum(entryOid));
-
- rel = table_open(AccessMethodProcedureRelationId, RowExclusiveLock);
-
- scan = systable_beginscan(rel, AccessMethodProcedureOidIndexId, true,
- NULL, 1, skey);
-
- /* we expect exactly one match */
- tup = systable_getnext(scan);
- if (!HeapTupleIsValid(tup))
- elog(ERROR, "could not find tuple for amproc entry %u", entryOid);
-
- CatalogTupleDelete(rel, &tup->t_self);
-
- systable_endscan(scan);
- table_close(rel, RowExclusiveLock);
-}
-
-/*
* Subroutine for ALTER OPERATOR CLASS SET SCHEMA/RENAME
*
* Is there an operator class with the given name and signature already