index c1212e9075a21fb22e480ac681dab4b62d454389..5d7c441739cec7a45090bab0f331c0ad2fc130c5 100644 (file)
* This constant table maps ObjectClasses to the corresponding catalog OIDs.
* See also getObjectClass().
*/
-static const Oid object_classes[MAX_OCLASS] = {
+static const Oid object_classes[] = {
RelationRelationId, /* OCLASS_CLASS */
ProcedureRelationId, /* OCLASS_PROC */
TypeRelationId, /* OCLASS_TYPE */
@@ -158,7 +158,8 @@ static const Oid object_classes[MAX_OCLASS] = {
DefaultAclRelationId, /* OCLASS_DEFACL */
ExtensionRelationId, /* OCLASS_EXTENSION */
EventTriggerRelationId, /* OCLASS_EVENT_TRIGGER */
- PolicyRelationId /* OCLASS_POLICY */
+ PolicyRelationId, /* OCLASS_POLICY */
+ TransformRelationId /* OCLASS_TRANSFORM */
};
@@ -2037,6 +2038,12 @@ add_object_address(ObjectClass oclass, Oid objectId, int32 subId,
{
ObjectAddress *item;
+ /*
+ * Make sure object_classes is kept up to date with the ObjectClass enum.
+ */
+ StaticAssertStmt(lengthof(object_classes) == LAST_OCLASS + 1,
+ "object_classes[] must cover all ObjectClasses");
+
/* enlarge array if needed */
if (addrs->numrefs >= addrs->maxrefs)
{
index bf40881037cbca45d40450745a8f6ae77539f9e9..3d1cb0b8e3057f3e8ef7128e1ba2a0cab5926800 100644 (file)
@@ -1168,15 +1168,6 @@ EventTriggerSupportsObjectClass(ObjectClass objclass)
case OCLASS_EXTENSION:
case OCLASS_POLICY:
return true;
-
- case MAX_OCLASS:
-
- /*
- * This shouldn't ever happen, but we keep the case to avoid a
- * compiler warning without a "default" clause in the switch.
- */
- Assert(false);
- break;
}
return true;
index 5da18c25444f88ee2a13b88945096e442b68a7e6..aa3f3d90a18e68b45251a71d88eb1f5d6907a36e 100644 (file)
@@ -112,7 +112,7 @@ typedef struct ObjectAddresses ObjectAddresses;
/*
* This enum covers all system catalogs whose OIDs can appear in
- * pg_depend.classId or pg_shdepend.classId.
+ * pg_depend.classId or pg_shdepend.classId. Keep object_classes[] in sync.
*/
typedef enum ObjectClass
{
OCLASS_EXTENSION, /* pg_extension */
OCLASS_EVENT_TRIGGER, /* pg_event_trigger */
OCLASS_POLICY, /* pg_policy */
- OCLASS_TRANSFORM, /* pg_transform */
- MAX_OCLASS /* MUST BE LAST */
+ OCLASS_TRANSFORM /* pg_transform */
} ObjectClass;
+#define LAST_OCLASS OCLASS_TRANSFORM
+
/* in dependency.c */