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)
+
