@@ -171,13 +171,13 @@ static void findDependentObjects(const ObjectAddress *object,
171
171
ObjectAddressStack * stack ,
172
172
ObjectAddresses * targetObjects ,
173
173
const ObjectAddresses * pendingObjects ,
174
- Relation depRel );
174
+ Relation * depRel );
175
175
static void reportDependentObjects (const ObjectAddresses * targetObjects ,
176
176
DropBehavior behavior ,
177
177
int msglevel ,
178
178
const ObjectAddress * origObject );
179
179
static void deleteOneObject (const ObjectAddress * object ,
180
- Relation depRel , int32 flags );
180
+ Relation * depRel , int32 flags );
181
181
static void doDeletion (const ObjectAddress * object , int flags );
182
182
static void AcquireDeletionLock (const ObjectAddress * object , int flags );
183
183
static void ReleaseDeletionLock (const ObjectAddress * object );
@@ -250,7 +250,7 @@ performDeletion(const ObjectAddress *object,
250
250
NULL , /* empty stack */
251
251
targetObjects ,
252
252
NULL , /* no pendingObjects */
253
- depRel );
253
+ & depRel );
254
254
255
255
/*
256
256
* Check if deletion is allowed, and report about cascaded deletes.
@@ -267,7 +267,7 @@ performDeletion(const ObjectAddress *object,
267
267
{
268
268
ObjectAddress * thisobj = targetObjects -> refs + i ;
269
269
270
- deleteOneObject (thisobj , depRel , flags );
270
+ deleteOneObject (thisobj , & depRel , flags );
271
271
}
272
272
273
273
/* And clean up */
@@ -328,7 +328,7 @@ performMultipleDeletions(const ObjectAddresses *objects,
328
328
NULL , /* empty stack */
329
329
targetObjects ,
330
330
objects ,
331
- depRel );
331
+ & depRel );
332
332
}
333
333
334
334
/*
@@ -349,7 +349,7 @@ performMultipleDeletions(const ObjectAddresses *objects,
349
349
{
350
350
ObjectAddress * thisobj = targetObjects -> refs + i ;
351
351
352
- deleteOneObject (thisobj , depRel , flags );
352
+ deleteOneObject (thisobj , & depRel , flags );
353
353
}
354
354
355
355
/* And clean up */
@@ -398,7 +398,7 @@ deleteWhatDependsOn(const ObjectAddress *object,
398
398
NULL , /* empty stack */
399
399
targetObjects ,
400
400
NULL , /* no pendingObjects */
401
- depRel );
401
+ & depRel );
402
402
403
403
/*
404
404
* Check if deletion is allowed, and report about cascaded deletes.
@@ -427,7 +427,7 @@ deleteWhatDependsOn(const ObjectAddress *object,
427
427
* action. If, in the future, this function is used for other
428
428
* purposes, we might need to revisit this.
429
429
*/
430
- deleteOneObject (thisobj , depRel , PERFORM_DELETION_INTERNAL );
430
+ deleteOneObject (thisobj , & depRel , PERFORM_DELETION_INTERNAL );
431
431
}
432
432
433
433
/* And clean up */
@@ -462,15 +462,15 @@ deleteWhatDependsOn(const ObjectAddress *object,
462
462
* targetObjects: list of objects that are scheduled to be deleted
463
463
* pendingObjects: list of other objects slated for destruction, but
464
464
* not necessarily in targetObjects yet (can be NULL if none)
465
- * depRel: already opened pg_depend relation
465
+ * * depRel: already opened pg_depend relation
466
466
*/
467
467
static void
468
468
findDependentObjects (const ObjectAddress * object ,
469
469
int flags ,
470
470
ObjectAddressStack * stack ,
471
471
ObjectAddresses * targetObjects ,
472
472
const ObjectAddresses * pendingObjects ,
473
- Relation depRel )
473
+ Relation * depRel )
474
474
{
475
475
ScanKeyData key [3 ];
476
476
int nkeys ;
@@ -540,7 +540,7 @@ findDependentObjects(const ObjectAddress *object,
540
540
else
541
541
nkeys = 2 ;
542
542
543
- scan = systable_beginscan (depRel , DependDependerIndexId , true,
543
+ scan = systable_beginscan (* depRel , DependDependerIndexId , true,
544
544
SnapshotNow , nkeys , key );
545
545
546
546
while (HeapTupleIsValid (tup = systable_getnext (scan )))
@@ -715,7 +715,7 @@ findDependentObjects(const ObjectAddress *object,
715
715
else
716
716
nkeys = 2 ;
717
717
718
- scan = systable_beginscan (depRel , DependReferenceIndexId , true,
718
+ scan = systable_beginscan (* depRel , DependReferenceIndexId , true,
719
719
SnapshotNow , nkeys , key );
720
720
721
721
while (HeapTupleIsValid (tup = systable_getnext (scan )))
@@ -986,10 +986,10 @@ reportDependentObjects(const ObjectAddresses *targetObjects,
986
986
/*
987
987
* deleteOneObject: delete a single object for performDeletion.
988
988
*
989
- * depRel is the already-open pg_depend relation.
989
+ * * depRel is the already-open pg_depend relation.
990
990
*/
991
991
static void
992
- deleteOneObject (const ObjectAddress * object , Relation depRel , int flags )
992
+ deleteOneObject (const ObjectAddress * object , Relation * depRel , int flags )
993
993
{
994
994
ScanKeyData key [3 ];
995
995
int nkeys ;
@@ -1012,7 +1012,7 @@ deleteOneObject(const ObjectAddress *object, Relation depRel, int flags)
1012
1012
* relation open across doDeletion().
1013
1013
*/
1014
1014
if (flags & PERFORM_DELETION_CONCURRENTLY )
1015
- heap_close (depRel , RowExclusiveLock );
1015
+ heap_close (* depRel , RowExclusiveLock );
1016
1016
1017
1017
/*
1018
1018
* Delete the object itself, in an object-type-dependent way.
@@ -1029,7 +1029,7 @@ deleteOneObject(const ObjectAddress *object, Relation depRel, int flags)
1029
1029
* Reopen depRel if we closed it above
1030
1030
*/
1031
1031
if (flags & PERFORM_DELETION_CONCURRENTLY )
1032
- depRel = heap_open (DependRelationId , RowExclusiveLock );
1032
+ * depRel = heap_open (DependRelationId , RowExclusiveLock );
1033
1033
1034
1034
/*
1035
1035
* 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)
1057
1057
else
1058
1058
nkeys = 2 ;
1059
1059
1060
- scan = systable_beginscan (depRel , DependDependerIndexId , true,
1060
+ scan = systable_beginscan (* depRel , DependDependerIndexId , true,
1061
1061
SnapshotNow , nkeys , key );
1062
1062
1063
1063
while (HeapTupleIsValid (tup = systable_getnext (scan )))
1064
1064
{
1065
- simple_heap_delete (depRel , & tup -> t_self );
1065
+ simple_heap_delete (* depRel , & tup -> t_self );
1066
1066
}
1067
1067
1068
1068
systable_endscan (scan );
@@ -1125,10 +1125,6 @@ doDeletion(const ObjectAddress *object, int flags)
1125
1125
break ;
1126
1126
}
1127
1127
1128
- case OCLASS_EVENT_TRIGGER :
1129
- RemoveEventTriggerById (object -> objectId );
1130
- break ;
1131
-
1132
1128
case OCLASS_PROC :
1133
1129
RemoveFunctionById (object -> objectId );
1134
1130
break ;
@@ -1238,6 +1234,10 @@ doDeletion(const ObjectAddress *object, int flags)
1238
1234
RemoveExtensionById (object -> objectId );
1239
1235
break ;
1240
1236
1237
+ case OCLASS_EVENT_TRIGGER :
1238
+ RemoveEventTriggerById (object -> objectId );
1239
+ break ;
1240
+
1241
1241
default :
1242
1242
elog (ERROR , "unrecognized object class: %u" ,
1243
1243
object -> classId );
0 commit comments