aboutsummaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/catalog/dependency.c44
1 files changed, 22 insertions, 22 deletions
diff --git a/src/backend/catalog/dependency.c b/src/backend/catalog/dependency.c
index 0b61c97eb4d..cefa82c3d54 100644
--- a/src/backend/catalog/dependency.c
+++ b/src/backend/catalog/dependency.c
@@ -171,13 +171,13 @@ static void findDependentObjects(const ObjectAddress *object,
ObjectAddressStack *stack,
ObjectAddresses *targetObjects,
const ObjectAddresses *pendingObjects,
- Relation depRel);
+ Relation *depRel);
static void reportDependentObjects(const ObjectAddresses *targetObjects,
DropBehavior behavior,
int msglevel,
const ObjectAddress *origObject);
static void deleteOneObject(const ObjectAddress *object,
- Relation depRel, int32 flags);
+ Relation *depRel, int32 flags);
static void doDeletion(const ObjectAddress *object, int flags);
static void AcquireDeletionLock(const ObjectAddress *object, int flags);
static void ReleaseDeletionLock(const ObjectAddress *object);
@@ -250,7 +250,7 @@ performDeletion(const ObjectAddress *object,
NULL, /* empty stack */
targetObjects,
NULL, /* no pendingObjects */
- depRel);
+ &depRel);
/*
* Check if deletion is allowed, and report about cascaded deletes.
@@ -267,7 +267,7 @@ performDeletion(const ObjectAddress *object,
{
ObjectAddress *thisobj = targetObjects->refs + i;
- deleteOneObject(thisobj, depRel, flags);
+ deleteOneObject(thisobj, &depRel, flags);
}
/* And clean up */
@@ -328,7 +328,7 @@ performMultipleDeletions(const ObjectAddresses *objects,
NULL, /* empty stack */
targetObjects,
objects,
- depRel);
+ &depRel);
}
/*
@@ -349,7 +349,7 @@ performMultipleDeletions(const ObjectAddresses *objects,
{
ObjectAddress *thisobj = targetObjects->refs + i;
- deleteOneObject(thisobj, depRel, flags);
+ deleteOneObject(thisobj, &depRel, flags);
}
/* And clean up */
@@ -398,7 +398,7 @@ deleteWhatDependsOn(const ObjectAddress *object,
NULL, /* empty stack */
targetObjects,
NULL, /* no pendingObjects */
- depRel);
+ &depRel);
/*
* Check if deletion is allowed, and report about cascaded deletes.
@@ -427,7 +427,7 @@ deleteWhatDependsOn(const ObjectAddress *object,
* action. If, in the future, this function is used for other
* purposes, we might need to revisit this.
*/
- deleteOneObject(thisobj, depRel, PERFORM_DELETION_INTERNAL);
+ deleteOneObject(thisobj, &depRel, PERFORM_DELETION_INTERNAL);
}
/* And clean up */
@@ -462,7 +462,7 @@ deleteWhatDependsOn(const ObjectAddress *object,
* targetObjects: list of objects that are scheduled to be deleted
* pendingObjects: list of other objects slated for destruction, but
* not necessarily in targetObjects yet (can be NULL if none)
- * depRel: already opened pg_depend relation
+ * *depRel: already opened pg_depend relation
*/
static void
findDependentObjects(const ObjectAddress *object,
@@ -470,7 +470,7 @@ findDependentObjects(const ObjectAddress *object,
ObjectAddressStack *stack,
ObjectAddresses *targetObjects,
const ObjectAddresses *pendingObjects,
- Relation depRel)
+ Relation *depRel)
{
ScanKeyData key[3];
int nkeys;
@@ -540,7 +540,7 @@ findDependentObjects(const ObjectAddress *object,
else
nkeys = 2;
- scan = systable_beginscan(depRel, DependDependerIndexId, true,
+ scan = systable_beginscan(*depRel, DependDependerIndexId, true,
SnapshotNow, nkeys, key);
while (HeapTupleIsValid(tup = systable_getnext(scan)))
@@ -715,7 +715,7 @@ findDependentObjects(const ObjectAddress *object,
else
nkeys = 2;
- scan = systable_beginscan(depRel, DependReferenceIndexId, true,
+ scan = systable_beginscan(*depRel, DependReferenceIndexId, true,
SnapshotNow, nkeys, key);
while (HeapTupleIsValid(tup = systable_getnext(scan)))
@@ -986,10 +986,10 @@ reportDependentObjects(const ObjectAddresses *targetObjects,
/*
* deleteOneObject: delete a single object for performDeletion.
*
- * depRel is the already-open pg_depend relation.
+ * *depRel is the already-open pg_depend relation.
*/
static void
-deleteOneObject(const ObjectAddress *object, Relation depRel, int flags)
+deleteOneObject(const ObjectAddress *object, Relation *depRel, int flags)
{
ScanKeyData key[3];
int nkeys;
@@ -1012,7 +1012,7 @@ deleteOneObject(const ObjectAddress *object, Relation depRel, int flags)
* relation open across doDeletion().
*/
if (flags & PERFORM_DELETION_CONCURRENTLY)
- heap_close(depRel, RowExclusiveLock);
+ heap_close(*depRel, RowExclusiveLock);
/*
* Delete the object itself, in an object-type-dependent way.
@@ -1029,7 +1029,7 @@ deleteOneObject(const ObjectAddress *object, Relation depRel, int flags)
* Reopen depRel if we closed it above
*/
if (flags & PERFORM_DELETION_CONCURRENTLY)
- depRel = heap_open(DependRelationId, RowExclusiveLock);
+ *depRel = heap_open(DependRelationId, RowExclusiveLock);
/*
* Now remove any pg_depend records that link from this object to others.
@@ -1057,12 +1057,12 @@ deleteOneObject(const ObjectAddress *object, Relation depRel, int flags)
else
nkeys = 2;
- scan = systable_beginscan(depRel, DependDependerIndexId, true,
+ scan = systable_beginscan(*depRel, DependDependerIndexId, true,
SnapshotNow, nkeys, key);
while (HeapTupleIsValid(tup = systable_getnext(scan)))
{
- simple_heap_delete(depRel, &tup->t_self);
+ simple_heap_delete(*depRel, &tup->t_self);
}
systable_endscan(scan);
@@ -1125,10 +1125,6 @@ doDeletion(const ObjectAddress *object, int flags)
break;
}
- case OCLASS_EVENT_TRIGGER:
- RemoveEventTriggerById(object->objectId);
- break;
-
case OCLASS_PROC:
RemoveFunctionById(object->objectId);
break;
@@ -1238,6 +1234,10 @@ doDeletion(const ObjectAddress *object, int flags)
RemoveExtensionById(object->objectId);
break;
+ case OCLASS_EVENT_TRIGGER:
+ RemoveEventTriggerById(object->objectId);
+ break;
+
default:
elog(ERROR, "unrecognized object class: %u",
object->classId);