@@ -206,7 +206,7 @@ deleteObjectsInList(ObjectAddresses *targetObjects, Relation *depRel,
206206 if (extra -> flags & DEPFLAG_REVERSE )
207207 normal = true;
208208
209- if (EventTriggerSupportsObjectClass ( getObjectClass ( thisobj ) ))
209+ if (EventTriggerSupportsObject ( thisobj ))
210210 {
211211 EventTriggerSQLDropAddObject (thisobj , original , normal );
212212 }
@@ -1349,9 +1349,9 @@ deleteOneObject(const ObjectAddress *object, Relation *depRel, int flags)
13491349static void
13501350doDeletion (const ObjectAddress * object , int flags )
13511351{
1352- switch (getObjectClass ( object ) )
1352+ switch (object -> classId )
13531353 {
1354- case OCLASS_CLASS :
1354+ case RelationRelationId :
13551355 {
13561356 char relKind = get_rel_relkind (object -> objectId );
13571357
@@ -1382,104 +1382,102 @@ doDeletion(const ObjectAddress *object, int flags)
13821382 break ;
13831383 }
13841384
1385- case OCLASS_PROC :
1385+ case ProcedureRelationId :
13861386 RemoveFunctionById (object -> objectId );
13871387 break ;
13881388
1389- case OCLASS_TYPE :
1389+ case TypeRelationId :
13901390 RemoveTypeById (object -> objectId );
13911391 break ;
13921392
1393- case OCLASS_CONSTRAINT :
1393+ case ConstraintRelationId :
13941394 RemoveConstraintById (object -> objectId );
13951395 break ;
13961396
1397- case OCLASS_DEFAULT :
1397+ case AttrDefaultRelationId :
13981398 RemoveAttrDefaultById (object -> objectId );
13991399 break ;
14001400
1401- case OCLASS_LARGEOBJECT :
1401+ case LargeObjectRelationId :
14021402 LargeObjectDrop (object -> objectId );
14031403 break ;
14041404
1405- case OCLASS_OPERATOR :
1405+ case OperatorRelationId :
14061406 RemoveOperatorById (object -> objectId );
14071407 break ;
14081408
1409- case OCLASS_REWRITE :
1409+ case RewriteRelationId :
14101410 RemoveRewriteRuleById (object -> objectId );
14111411 break ;
14121412
1413- case OCLASS_TRIGGER :
1413+ case TriggerRelationId :
14141414 RemoveTriggerById (object -> objectId );
14151415 break ;
14161416
1417- case OCLASS_STATISTIC_EXT :
1417+ case StatisticExtRelationId :
14181418 RemoveStatisticsById (object -> objectId );
14191419 break ;
14201420
1421- case OCLASS_TSCONFIG :
1421+ case TSConfigRelationId :
14221422 RemoveTSConfigurationById (object -> objectId );
14231423 break ;
14241424
1425- case OCLASS_EXTENSION :
1425+ case ExtensionRelationId :
14261426 RemoveExtensionById (object -> objectId );
14271427 break ;
14281428
1429- case OCLASS_POLICY :
1429+ case PolicyRelationId :
14301430 RemovePolicyById (object -> objectId );
14311431 break ;
14321432
1433- case OCLASS_PUBLICATION_NAMESPACE :
1433+ case PublicationNamespaceRelationId :
14341434 RemovePublicationSchemaById (object -> objectId );
14351435 break ;
14361436
1437- case OCLASS_PUBLICATION_REL :
1437+ case PublicationRelRelationId :
14381438 RemovePublicationRelById (object -> objectId );
14391439 break ;
14401440
1441- case OCLASS_PUBLICATION :
1441+ case PublicationRelationId :
14421442 RemovePublicationById (object -> objectId );
14431443 break ;
14441444
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 :
14651465 DropObjectById (object );
14661466 break ;
14671467
14681468 /*
14691469 * These global object types are not supported here.
14701470 */
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 :
14761476 elog (ERROR , "global objects cannot be deleted by doDeletion" );
14771477 break ;
14781478
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 );
14831481 }
14841482}
14851483
@@ -2774,153 +2772,6 @@ free_object_addresses(ObjectAddresses *addrs)
27742772 pfree (addrs );
27752773}
27762774
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-
29242775/*
29252776 * delete initial ACL for extension objects
29262777 */
0 commit comments