diff --git a/src/backend/catalog/dependency.c b/src/backend/catalog/dependency.c index 5d7c441..2d74f25 100644 --- a/src/backend/catalog/dependency.c +++ b/src/backend/catalog/dependency.c @@ -127,39 +127,9 @@ typedef struct * See also getObjectClass(). */ static const Oid object_classes[] = { - RelationRelationId, /* OCLASS_CLASS */ - ProcedureRelationId, /* OCLASS_PROC */ - TypeRelationId, /* OCLASS_TYPE */ - CastRelationId, /* OCLASS_CAST */ - CollationRelationId, /* OCLASS_COLLATION */ - ConstraintRelationId, /* OCLASS_CONSTRAINT */ - ConversionRelationId, /* OCLASS_CONVERSION */ - AttrDefaultRelationId, /* OCLASS_DEFAULT */ - LanguageRelationId, /* OCLASS_LANGUAGE */ - LargeObjectRelationId, /* OCLASS_LARGEOBJECT */ - OperatorRelationId, /* OCLASS_OPERATOR */ - OperatorClassRelationId, /* OCLASS_OPCLASS */ - OperatorFamilyRelationId, /* OCLASS_OPFAMILY */ - AccessMethodOperatorRelationId, /* OCLASS_AMOP */ - AccessMethodProcedureRelationId, /* OCLASS_AMPROC */ - RewriteRelationId, /* OCLASS_REWRITE */ - TriggerRelationId, /* OCLASS_TRIGGER */ - NamespaceRelationId, /* OCLASS_SCHEMA */ - TSParserRelationId, /* OCLASS_TSPARSER */ - TSDictionaryRelationId, /* OCLASS_TSDICT */ - TSTemplateRelationId, /* OCLASS_TSTEMPLATE */ - TSConfigRelationId, /* OCLASS_TSCONFIG */ - AuthIdRelationId, /* OCLASS_ROLE */ - DatabaseRelationId, /* OCLASS_DATABASE */ - TableSpaceRelationId, /* OCLASS_TBLSPACE */ - ForeignDataWrapperRelationId, /* OCLASS_FDW */ - ForeignServerRelationId, /* OCLASS_FOREIGN_SERVER */ - UserMappingRelationId, /* OCLASS_USER_MAPPING */ - DefaultAclRelationId, /* OCLASS_DEFACL */ - ExtensionRelationId, /* OCLASS_EXTENSION */ - EventTriggerRelationId, /* OCLASS_EVENT_TRIGGER */ - PolicyRelationId, /* OCLASS_POLICY */ - TransformRelationId /* OCLASS_TRANSFORM */ +#define PG_DEPMAP(symname,relid) relid, +#include "catalog/deplist.h" +#undef PG_DEPMAP }; diff --git a/src/include/catalog/dependency.h b/src/include/catalog/dependency.h index aa3f3d9..fd1f420 100644 --- a/src/include/catalog/dependency.h +++ b/src/include/catalog/dependency.h @@ -116,39 +116,9 @@ typedef struct ObjectAddresses ObjectAddresses; */ typedef enum ObjectClass { - OCLASS_CLASS, /* pg_class */ - OCLASS_PROC, /* pg_proc */ - OCLASS_TYPE, /* pg_type */ - OCLASS_CAST, /* pg_cast */ - OCLASS_COLLATION, /* pg_collation */ - OCLASS_CONSTRAINT, /* pg_constraint */ - OCLASS_CONVERSION, /* pg_conversion */ - OCLASS_DEFAULT, /* pg_attrdef */ - OCLASS_LANGUAGE, /* pg_language */ - OCLASS_LARGEOBJECT, /* pg_largeobject */ - OCLASS_OPERATOR, /* pg_operator */ - OCLASS_OPCLASS, /* pg_opclass */ - OCLASS_OPFAMILY, /* pg_opfamily */ - OCLASS_AMOP, /* pg_amop */ - OCLASS_AMPROC, /* pg_amproc */ - OCLASS_REWRITE, /* pg_rewrite */ - OCLASS_TRIGGER, /* pg_trigger */ - OCLASS_SCHEMA, /* pg_namespace */ - OCLASS_TSPARSER, /* pg_ts_parser */ - OCLASS_TSDICT, /* pg_ts_dict */ - OCLASS_TSTEMPLATE, /* pg_ts_template */ - OCLASS_TSCONFIG, /* pg_ts_config */ - OCLASS_ROLE, /* pg_authid */ - OCLASS_DATABASE, /* pg_database */ - OCLASS_TBLSPACE, /* pg_tablespace */ - OCLASS_FDW, /* pg_foreign_data_wrapper */ - OCLASS_FOREIGN_SERVER, /* pg_foreign_server */ - OCLASS_USER_MAPPING, /* pg_user_mapping */ - OCLASS_DEFACL, /* pg_default_acl */ - OCLASS_EXTENSION, /* pg_extension */ - OCLASS_EVENT_TRIGGER, /* pg_event_trigger */ - OCLASS_POLICY, /* pg_policy */ - OCLASS_TRANSFORM /* pg_transform */ +#define PG_DEPMAP(symname,relid) symname, +#include "catalog/deplist.h" +#undef PG_DEPMAP } ObjectClass; #define LAST_OCLASS OCLASS_TRANSFORM diff --git a/src/include/catalog/deplist.h b/src/include/catalog/deplist.h new file mode 100644 index 0000000..ab6cc2d --- /dev/null +++ b/src/include/catalog/deplist.h @@ -0,0 +1,54 @@ +/*--------------------------------------------------------------------------- + * deplist.h + * + * + * Portions Copyright (c) 1996-2015, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * src/include/catalog/deplist.h + *--------------------------------------------------------------------------- + */ + +/* there is deliberately not an #ifndef DEPLIST_H here */ + +/* + * List of dependency entries. Note that order of entries defines the + * numerical values of each ID + * + */ + +/* symbol name, textual name, redo, desc, identify, startup, cleanup */ +PG_DEPMAP(OCLASS_CLASS, RelationRelationId) +PG_DEPMAP(OCLASS_PROC, ProcedureRelationId) +PG_DEPMAP(OCLASS_TYPE, TypeRelationId) +PG_DEPMAP(OCLASS_CAST, CastRelationId) +PG_DEPMAP(OCLASS_COLLATION, CollationRelationId) +PG_DEPMAP(OCLASS_CONSTRAINT, ConstraintRelationId) +PG_DEPMAP(OCLASS_CONVERSION, ConversionRelationId) +PG_DEPMAP(OCLASS_DEFAULT, AttrDefaultRelationId) +PG_DEPMAP(OCLASS_LANGUAGE, LanguageRelationId) +PG_DEPMAP(OCLASS_LARGEOBJECT, LargeObjectRelationId) +PG_DEPMAP(OCLASS_OPERATOR, OperatorRelationId) +PG_DEPMAP(OCLASS_OPCLASS, OperatorClassRelationId) +PG_DEPMAP(OCLASS_OPFAMILY, OperatorFamilyRelationId) +PG_DEPMAP(OCLASS_AMOP, AccessMethodOperatorRelationId) +PG_DEPMAP(OCLASS_AMPROC, AccessMethodProcedureRelationId) +PG_DEPMAP(OCLASS_REWRITE, RewriteRelationId) +PG_DEPMAP(OCLASS_TRIGGER, TriggerRelationId) +PG_DEPMAP(OCLASS_SCHEMA, NamespaceRelationId) +PG_DEPMAP(OCLASS_TSPARSER, TSParserRelationId) +PG_DEPMAP(OCLASS_TSDICT, TSDictionaryRelationId) +PG_DEPMAP(OCLASS_TSTEMPLATE, TSTemplateRelationId) +PG_DEPMAP(OCLASS_TSCONFIG, TSConfigRelationId) +PG_DEPMAP(OCLASS_ROLE, AuthIdRelationId) +PG_DEPMAP(OCLASS_DATABASE, DatabaseRelationId) +PG_DEPMAP(OCLASS_TBLSPACE, TableSpaceRelationId) +PG_DEPMAP(OCLASS_FDW, ForeignDataWrapperRelationId) +PG_DEPMAP(OCLASS_FOREIGN_SERVER,ForeignServerRelationId) +PG_DEPMAP(OCLASS_USER_MAPPING, UserMappingRelationId) +PG_DEPMAP(OCLASS_DEFACL, DefaultAclRelationId) +PG_DEPMAP(OCLASS_EXTENSION, ExtensionRelationId) +PG_DEPMAP(OCLASS_EVENT_TRIGGER, EventTriggerRelationId) +PG_DEPMAP(OCLASS_POLICY, PolicyRelationId) +PG_DEPMAP(OCLASS_TRANSFORM, TransformRelationId) +