From 7bb4a82e6f2126f0b939f80b79d4ae83b56edc3f Mon Sep 17 00:00:00 2001 From: jian he Date: Fri, 1 Mar 2024 15:02:04 +0800 Subject: [PATCH v1 1/1] Remove ObjectClass refactor dependency.c, event_trigger.c. --- src/backend/catalog/dependency.c | 2 +- src/backend/commands/event_trigger.c | 123 +++++++++++++++++---------- src/include/commands/event_trigger.h | 2 +- src/tools/pgindent/typedefs.list | 1 - 4 files changed, 80 insertions(+), 48 deletions(-) diff --git a/src/backend/catalog/dependency.c b/src/backend/catalog/dependency.c index 8b99c357..c8565656 100644 --- a/src/backend/catalog/dependency.c +++ b/src/backend/catalog/dependency.c @@ -208,7 +208,7 @@ deleteObjectsInList(ObjectAddresses *targetObjects, Relation *depRel, if (extra->flags & DEPFLAG_REVERSE) normal = true; - if (EventTriggerSupportsObjectClass(getObjectClass(thisobj))) + if (EventTriggerSupportsObjectClass(thisobj->classId)) { EventTriggerSQLDropAddObject(thisobj, original, normal); } diff --git a/src/backend/commands/event_trigger.c b/src/backend/commands/event_trigger.c index c8b66213..020eaa99 100644 --- a/src/backend/commands/event_trigger.c +++ b/src/backend/commands/event_trigger.c @@ -21,14 +21,47 @@ #include "catalog/dependency.h" #include "catalog/indexing.h" #include "catalog/objectaccess.h" +#include "catalog/pg_am.h" +#include "catalog/pg_amop.h" +#include "catalog/pg_amproc.h" +#include "catalog/pg_attrdef.h" +#include "catalog/pg_authid.h" +#include "catalog/pg_auth_members.h" +#include "catalog/pg_cast.h" +#include "catalog/pg_collation.h" +#include "catalog/pg_constraint.h" +#include "catalog/pg_conversion.h" #include "catalog/pg_database.h" +#include "catalog/pg_default_acl.h" +#include "catalog/pg_depend.h" #include "catalog/pg_event_trigger.h" +#include "catalog/pg_extension.h" +#include "catalog/pg_foreign_data_wrapper.h" +#include "catalog/pg_foreign_server.h" +#include "catalog/pg_init_privs.h" +#include "catalog/pg_language.h" +#include "catalog/pg_largeobject.h" #include "catalog/pg_namespace.h" #include "catalog/pg_opclass.h" +#include "catalog/pg_operator.h" #include "catalog/pg_opfamily.h" +#include "catalog/pg_parameter_acl.h" +#include "catalog/pg_policy.h" #include "catalog/pg_proc.h" +#include "catalog/pg_publication.h" +#include "catalog/pg_publication_namespace.h" +#include "catalog/pg_publication_rel.h" +#include "catalog/pg_rewrite.h" +#include "catalog/pg_statistic_ext.h" +#include "catalog/pg_subscription.h" +#include "catalog/pg_tablespace.h" +#include "catalog/pg_transform.h" #include "catalog/pg_trigger.h" #include "catalog/pg_ts_config.h" +#include "catalog/pg_ts_dict.h" +#include "catalog/pg_ts_parser.h" +#include "catalog/pg_ts_template.h" +#include "catalog/pg_user_mapping.h" #include "catalog/pg_type.h" #include "commands/dbcommands.h" #include "commands/event_trigger.h" @@ -1204,60 +1237,60 @@ EventTriggerSupportsObjectType(ObjectType obtype) * Do event triggers support this object class? */ bool -EventTriggerSupportsObjectClass(ObjectClass objclass) +EventTriggerSupportsObjectClass(Oid classId) { - switch (objclass) + switch (classId) { - case OCLASS_DATABASE: - case OCLASS_TBLSPACE: - case OCLASS_ROLE: - case OCLASS_ROLE_MEMBERSHIP: - case OCLASS_PARAMETER_ACL: + case DatabaseRelationId: + case TableSpaceRelationId: + case AuthIdRelationId: + case AuthMemRelationId: + case ParameterAclRelationId: /* no support for global objects */ return false; - case OCLASS_EVENT_TRIGGER: + case EventTriggerRelationId: /* no support for event triggers on event triggers */ return false; - case OCLASS_CLASS: - case OCLASS_PROC: - case OCLASS_TYPE: - case OCLASS_CAST: - case OCLASS_COLLATION: - case OCLASS_CONSTRAINT: - case OCLASS_CONVERSION: - case OCLASS_DEFAULT: - case OCLASS_LANGUAGE: - case OCLASS_LARGEOBJECT: - case OCLASS_OPERATOR: - case OCLASS_OPCLASS: - case OCLASS_OPFAMILY: - case OCLASS_AM: - case OCLASS_AMOP: - case OCLASS_AMPROC: - case OCLASS_REWRITE: - case OCLASS_TRIGGER: - case OCLASS_SCHEMA: - case OCLASS_STATISTIC_EXT: - case OCLASS_TSPARSER: - case OCLASS_TSDICT: - case OCLASS_TSTEMPLATE: - case OCLASS_TSCONFIG: - case OCLASS_FDW: - case OCLASS_FOREIGN_SERVER: - case OCLASS_USER_MAPPING: - case OCLASS_DEFACL: - case OCLASS_EXTENSION: - case OCLASS_POLICY: - case OCLASS_PUBLICATION: - case OCLASS_PUBLICATION_NAMESPACE: - case OCLASS_PUBLICATION_REL: - case OCLASS_SUBSCRIPTION: - case OCLASS_TRANSFORM: + case RelationRelationId: + case ProcedureRelationId: + case TypeRelationId: + case CastRelationId: + case CollationRelationId: + case ConstraintRelationId: + case ConversionRelationId: + case AttrDefaultRelationId: + case LanguageRelationId: + case LargeObjectRelationId: + case OperatorRelationId: + case OperatorClassRelationId: + case OperatorFamilyRelationId: + case AccessMethodRelationId: + case AccessMethodOperatorRelationId: + case AccessMethodProcedureRelationId: + case RewriteRelationId: + case TriggerRelationId: + case NamespaceRelationId: + case StatisticExtRelationId: + case TSParserRelationId: + case TSDictionaryRelationId: + case TSTemplateRelationId: + case TSConfigRelationId: + case ForeignDataWrapperRelationId: + case ForeignServerRelationId: + case UserMappingRelationId: + case DefaultAclRelationId: + case ExtensionRelationId: + case PolicyRelationId: + case PublicationRelationId: + case PublicationNamespaceRelationId: + case PublicationRelRelationId: + case SubscriptionRelationId: + case TransformRelationId: return true; /* * There's intentionally no default: case here; we want the - * compiler to warn if a new OCLASS hasn't been handled above. + * compiler to warn if a new classId hasn't been handled above. */ } @@ -1374,7 +1407,7 @@ EventTriggerSQLDropAddObject(const ObjectAddress *object, bool original, bool no if (!currentEventTriggerState) return; - Assert(EventTriggerSupportsObjectClass(getObjectClass(object))); + Assert(EventTriggerSupportsObjectClass(object->classId)); /* don't report temp schemas except my own */ if (object->classId == NamespaceRelationId && diff --git a/src/include/commands/event_trigger.h b/src/include/commands/event_trigger.h index f8fb659f..38378218 100644 --- a/src/include/commands/event_trigger.h +++ b/src/include/commands/event_trigger.h @@ -51,7 +51,7 @@ extern ObjectAddress AlterEventTriggerOwner(const char *name, Oid newOwnerId); extern void AlterEventTriggerOwner_oid(Oid, Oid newOwnerId); extern bool EventTriggerSupportsObjectType(ObjectType obtype); -extern bool EventTriggerSupportsObjectClass(ObjectClass objclass); +extern bool EventTriggerSupportsObjectClass(Oid classId); extern void EventTriggerDDLCommandStart(Node *parsetree); extern void EventTriggerDDLCommandEnd(Node *parsetree); extern void EventTriggerSQLDrop(Node *parsetree); diff --git a/src/tools/pgindent/typedefs.list b/src/tools/pgindent/typedefs.list index fc8b15d0..b6439a58 100644 --- a/src/tools/pgindent/typedefs.list +++ b/src/tools/pgindent/typedefs.list @@ -1671,7 +1671,6 @@ ObjectAddressAndFlags ObjectAddressExtra ObjectAddressStack ObjectAddresses -ObjectClass ObjectPropertyType ObjectType ObjectWithArgs -- 2.34.1