@@ -206,7 +206,7 @@ deleteObjectsInList(ObjectAddresses *targetObjects, Relation *depRel,
206
206
if (extra -> flags & DEPFLAG_REVERSE )
207
207
normal = true;
208
208
209
- if (EventTriggerSupportsObjectClass ( getObjectClass ( thisobj ) ))
209
+ if (EventTriggerSupportsObject ( thisobj ))
210
210
{
211
211
EventTriggerSQLDropAddObject (thisobj , original , normal );
212
212
}
@@ -1349,9 +1349,9 @@ deleteOneObject(const ObjectAddress *object, Relation *depRel, int flags)
1349
1349
static void
1350
1350
doDeletion (const ObjectAddress * object , int flags )
1351
1351
{
1352
- switch (getObjectClass ( object ) )
1352
+ switch (object -> classId )
1353
1353
{
1354
- case OCLASS_CLASS :
1354
+ case RelationRelationId :
1355
1355
{
1356
1356
char relKind = get_rel_relkind (object -> objectId );
1357
1357
@@ -1382,104 +1382,102 @@ doDeletion(const ObjectAddress *object, int flags)
1382
1382
break ;
1383
1383
}
1384
1384
1385
- case OCLASS_PROC :
1385
+ case ProcedureRelationId :
1386
1386
RemoveFunctionById (object -> objectId );
1387
1387
break ;
1388
1388
1389
- case OCLASS_TYPE :
1389
+ case TypeRelationId :
1390
1390
RemoveTypeById (object -> objectId );
1391
1391
break ;
1392
1392
1393
- case OCLASS_CONSTRAINT :
1393
+ case ConstraintRelationId :
1394
1394
RemoveConstraintById (object -> objectId );
1395
1395
break ;
1396
1396
1397
- case OCLASS_DEFAULT :
1397
+ case AttrDefaultRelationId :
1398
1398
RemoveAttrDefaultById (object -> objectId );
1399
1399
break ;
1400
1400
1401
- case OCLASS_LARGEOBJECT :
1401
+ case LargeObjectRelationId :
1402
1402
LargeObjectDrop (object -> objectId );
1403
1403
break ;
1404
1404
1405
- case OCLASS_OPERATOR :
1405
+ case OperatorRelationId :
1406
1406
RemoveOperatorById (object -> objectId );
1407
1407
break ;
1408
1408
1409
- case OCLASS_REWRITE :
1409
+ case RewriteRelationId :
1410
1410
RemoveRewriteRuleById (object -> objectId );
1411
1411
break ;
1412
1412
1413
- case OCLASS_TRIGGER :
1413
+ case TriggerRelationId :
1414
1414
RemoveTriggerById (object -> objectId );
1415
1415
break ;
1416
1416
1417
- case OCLASS_STATISTIC_EXT :
1417
+ case StatisticExtRelationId :
1418
1418
RemoveStatisticsById (object -> objectId );
1419
1419
break ;
1420
1420
1421
- case OCLASS_TSCONFIG :
1421
+ case TSConfigRelationId :
1422
1422
RemoveTSConfigurationById (object -> objectId );
1423
1423
break ;
1424
1424
1425
- case OCLASS_EXTENSION :
1425
+ case ExtensionRelationId :
1426
1426
RemoveExtensionById (object -> objectId );
1427
1427
break ;
1428
1428
1429
- case OCLASS_POLICY :
1429
+ case PolicyRelationId :
1430
1430
RemovePolicyById (object -> objectId );
1431
1431
break ;
1432
1432
1433
- case OCLASS_PUBLICATION_NAMESPACE :
1433
+ case PublicationNamespaceRelationId :
1434
1434
RemovePublicationSchemaById (object -> objectId );
1435
1435
break ;
1436
1436
1437
- case OCLASS_PUBLICATION_REL :
1437
+ case PublicationRelRelationId :
1438
1438
RemovePublicationRelById (object -> objectId );
1439
1439
break ;
1440
1440
1441
- case OCLASS_PUBLICATION :
1441
+ case PublicationRelationId :
1442
1442
RemovePublicationById (object -> objectId );
1443
1443
break ;
1444
1444
1445
- case OCLASS_CAST :
1446
- case OCLASS_COLLATION :
1447
- case OCLASS_CONVERSION :
1448
- case OCLASS_LANGUAGE :
1449
- case OCLASS_OPCLASS :
1450
- case OCLASS_OPFAMILY :
1451
- case OCLASS_AM :
1452
- case OCLASS_AMOP :
1453
- case OCLASS_AMPROC :
1454
- case OCLASS_SCHEMA :
1455
- case OCLASS_TSPARSER :
1456
- case OCLASS_TSDICT :
1457
- case OCLASS_TSTEMPLATE :
1458
- case OCLASS_FDW :
1459
- case OCLASS_FOREIGN_SERVER :
1460
- case OCLASS_USER_MAPPING :
1461
- case OCLASS_DEFACL :
1462
- case OCLASS_EVENT_TRIGGER :
1463
- case OCLASS_TRANSFORM :
1464
- case OCLASS_ROLE_MEMBERSHIP :
1445
+ case CastRelationId :
1446
+ case CollationRelationId :
1447
+ case ConversionRelationId :
1448
+ case LanguageRelationId :
1449
+ case OperatorClassRelationId :
1450
+ case OperatorFamilyRelationId :
1451
+ case AccessMethodRelationId :
1452
+ case AccessMethodOperatorRelationId :
1453
+ case AccessMethodProcedureRelationId :
1454
+ case NamespaceRelationId :
1455
+ case TSParserRelationId :
1456
+ case TSDictionaryRelationId :
1457
+ case TSTemplateRelationId :
1458
+ case ForeignDataWrapperRelationId :
1459
+ case ForeignServerRelationId :
1460
+ case UserMappingRelationId :
1461
+ case DefaultAclRelationId :
1462
+ case EventTriggerRelationId :
1463
+ case TransformRelationId :
1464
+ case AuthMemRelationId :
1465
1465
DropObjectById (object );
1466
1466
break ;
1467
1467
1468
1468
/*
1469
1469
* These global object types are not supported here.
1470
1470
*/
1471
- case OCLASS_ROLE :
1472
- case OCLASS_DATABASE :
1473
- case OCLASS_TBLSPACE :
1474
- case OCLASS_SUBSCRIPTION :
1475
- case OCLASS_PARAMETER_ACL :
1471
+ case AuthIdRelationId :
1472
+ case DatabaseRelationId :
1473
+ case TableSpaceRelationId :
1474
+ case SubscriptionRelationId :
1475
+ case ParameterAclRelationId :
1476
1476
elog (ERROR , "global objects cannot be deleted by doDeletion" );
1477
1477
break ;
1478
1478
1479
- /*
1480
- * There's intentionally no default: case here; we want the
1481
- * compiler to warn if a new OCLASS hasn't been handled above.
1482
- */
1479
+ default :
1480
+ elog (ERROR , "unsupported object class: %u" , object -> classId );
1483
1481
}
1484
1482
}
1485
1483
@@ -2774,153 +2772,6 @@ free_object_addresses(ObjectAddresses *addrs)
2774
2772
pfree (addrs );
2775
2773
}
2776
2774
2777
- /*
2778
- * Determine the class of a given object identified by objectAddress.
2779
- *
2780
- * We implement it as a function instead of an array because the OIDs aren't
2781
- * consecutive.
2782
- */
2783
- ObjectClass
2784
- getObjectClass (const ObjectAddress * object )
2785
- {
2786
- /* only pg_class entries can have nonzero objectSubId */
2787
- if (object -> classId != RelationRelationId &&
2788
- object -> objectSubId != 0 )
2789
- elog (ERROR , "invalid non-zero objectSubId for object class %u" ,
2790
- object -> classId );
2791
-
2792
- switch (object -> classId )
2793
- {
2794
- case RelationRelationId :
2795
- /* caller must check objectSubId */
2796
- return OCLASS_CLASS ;
2797
-
2798
- case ProcedureRelationId :
2799
- return OCLASS_PROC ;
2800
-
2801
- case TypeRelationId :
2802
- return OCLASS_TYPE ;
2803
-
2804
- case CastRelationId :
2805
- return OCLASS_CAST ;
2806
-
2807
- case CollationRelationId :
2808
- return OCLASS_COLLATION ;
2809
-
2810
- case ConstraintRelationId :
2811
- return OCLASS_CONSTRAINT ;
2812
-
2813
- case ConversionRelationId :
2814
- return OCLASS_CONVERSION ;
2815
-
2816
- case AttrDefaultRelationId :
2817
- return OCLASS_DEFAULT ;
2818
-
2819
- case LanguageRelationId :
2820
- return OCLASS_LANGUAGE ;
2821
-
2822
- case LargeObjectRelationId :
2823
- return OCLASS_LARGEOBJECT ;
2824
-
2825
- case OperatorRelationId :
2826
- return OCLASS_OPERATOR ;
2827
-
2828
- case OperatorClassRelationId :
2829
- return OCLASS_OPCLASS ;
2830
-
2831
- case OperatorFamilyRelationId :
2832
- return OCLASS_OPFAMILY ;
2833
-
2834
- case AccessMethodRelationId :
2835
- return OCLASS_AM ;
2836
-
2837
- case AccessMethodOperatorRelationId :
2838
- return OCLASS_AMOP ;
2839
-
2840
- case AccessMethodProcedureRelationId :
2841
- return OCLASS_AMPROC ;
2842
-
2843
- case RewriteRelationId :
2844
- return OCLASS_REWRITE ;
2845
-
2846
- case TriggerRelationId :
2847
- return OCLASS_TRIGGER ;
2848
-
2849
- case NamespaceRelationId :
2850
- return OCLASS_SCHEMA ;
2851
-
2852
- case StatisticExtRelationId :
2853
- return OCLASS_STATISTIC_EXT ;
2854
-
2855
- case TSParserRelationId :
2856
- return OCLASS_TSPARSER ;
2857
-
2858
- case TSDictionaryRelationId :
2859
- return OCLASS_TSDICT ;
2860
-
2861
- case TSTemplateRelationId :
2862
- return OCLASS_TSTEMPLATE ;
2863
-
2864
- case TSConfigRelationId :
2865
- return OCLASS_TSCONFIG ;
2866
-
2867
- case AuthIdRelationId :
2868
- return OCLASS_ROLE ;
2869
-
2870
- case AuthMemRelationId :
2871
- return OCLASS_ROLE_MEMBERSHIP ;
2872
-
2873
- case DatabaseRelationId :
2874
- return OCLASS_DATABASE ;
2875
-
2876
- case TableSpaceRelationId :
2877
- return OCLASS_TBLSPACE ;
2878
-
2879
- case ForeignDataWrapperRelationId :
2880
- return OCLASS_FDW ;
2881
-
2882
- case ForeignServerRelationId :
2883
- return OCLASS_FOREIGN_SERVER ;
2884
-
2885
- case UserMappingRelationId :
2886
- return OCLASS_USER_MAPPING ;
2887
-
2888
- case DefaultAclRelationId :
2889
- return OCLASS_DEFACL ;
2890
-
2891
- case ExtensionRelationId :
2892
- return OCLASS_EXTENSION ;
2893
-
2894
- case EventTriggerRelationId :
2895
- return OCLASS_EVENT_TRIGGER ;
2896
-
2897
- case ParameterAclRelationId :
2898
- return OCLASS_PARAMETER_ACL ;
2899
-
2900
- case PolicyRelationId :
2901
- return OCLASS_POLICY ;
2902
-
2903
- case PublicationNamespaceRelationId :
2904
- return OCLASS_PUBLICATION_NAMESPACE ;
2905
-
2906
- case PublicationRelationId :
2907
- return OCLASS_PUBLICATION ;
2908
-
2909
- case PublicationRelRelationId :
2910
- return OCLASS_PUBLICATION_REL ;
2911
-
2912
- case SubscriptionRelationId :
2913
- return OCLASS_SUBSCRIPTION ;
2914
-
2915
- case TransformRelationId :
2916
- return OCLASS_TRANSFORM ;
2917
- }
2918
-
2919
- /* shouldn't get here */
2920
- elog (ERROR , "unrecognized object class: %u" , object -> classId );
2921
- return OCLASS_CLASS ; /* keep compiler quiet */
2922
- }
2923
-
2924
2775
/*
2925
2776
* delete initial ACL for extension objects
2926
2777
*/
0 commit comments