The current catalog files all do this:

    CATALOG(pg_aggregate,2600,AggregateRelationId)
    {
        ...
    } FormData_pg_aggregate;

    typedef FormData_pg_aggregate *Form_pg_aggregate;

The bottom part of this seems redundant.  With the attached patch, we
can generate that automatically, so this becomes just

    CATALOG(pg_aggregate,2600,AggregateRelationId)
    {
        ...
    };

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
From 2b1b7e4c6d8b1f9f66bef0fd32992812425bb739 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <pe...@eisentraut.org>
Date: Wed, 12 Jun 2019 13:17:55 +0200
Subject: [PATCH] Catalog files simplification

Extend the CATALOG() macro used in src/include/catalog/ to also create
the Form_pg_foo and FormData_pg_foo typedefs automatically.
---
 src/include/catalog/genbki.h                  |  2 +-
 src/include/catalog/pg_aggregate.h            |  9 +--------
 src/include/catalog/pg_am.h                   |  9 +--------
 src/include/catalog/pg_amop.h                 |  9 +--------
 src/include/catalog/pg_amproc.h               |  9 +--------
 src/include/catalog/pg_attrdef.h              |  9 +--------
 src/include/catalog/pg_attribute.h            |  9 +--------
 src/include/catalog/pg_auth_members.h         |  9 +--------
 src/include/catalog/pg_authid.h               |  9 +--------
 src/include/catalog/pg_cast.h                 |  9 +--------
 src/include/catalog/pg_class.h                |  9 +--------
 src/include/catalog/pg_collation.h            |  9 +--------
 src/include/catalog/pg_constraint.h           |  9 +--------
 src/include/catalog/pg_conversion.h           |  9 +--------
 src/include/catalog/pg_database.h             |  9 +--------
 src/include/catalog/pg_db_role_setting.h      |  4 +---
 src/include/catalog/pg_default_acl.h          |  9 +--------
 src/include/catalog/pg_depend.h               |  9 +--------
 src/include/catalog/pg_description.h          |  9 +--------
 src/include/catalog/pg_enum.h                 |  9 +--------
 src/include/catalog/pg_event_trigger.h        |  9 +--------
 src/include/catalog/pg_extension.h            |  9 +--------
 src/include/catalog/pg_foreign_data_wrapper.h |  9 +--------
 src/include/catalog/pg_foreign_server.h       |  9 +--------
 src/include/catalog/pg_foreign_table.h        |  9 +--------
 src/include/catalog/pg_index.h                |  9 +--------
 src/include/catalog/pg_inherits.h             |  9 +--------
 src/include/catalog/pg_init_privs.h           |  9 +--------
 src/include/catalog/pg_language.h             |  9 +--------
 src/include/catalog/pg_largeobject.h          |  9 +--------
 src/include/catalog/pg_largeobject_metadata.h |  9 +--------
 src/include/catalog/pg_namespace.h            |  9 +--------
 src/include/catalog/pg_opclass.h              |  9 +--------
 src/include/catalog/pg_operator.h             |  9 +--------
 src/include/catalog/pg_opfamily.h             |  9 +--------
 src/include/catalog/pg_partitioned_table.h    |  9 +--------
 src/include/catalog/pg_pltemplate.h           |  9 +--------
 src/include/catalog/pg_policy.h               |  9 +--------
 src/include/catalog/pg_proc.h                 |  9 +--------
 src/include/catalog/pg_publication.h          |  9 +--------
 src/include/catalog/pg_publication_rel.h      |  9 +--------
 src/include/catalog/pg_range.h                |  9 +--------
 src/include/catalog/pg_replication_origin.h   |  4 +---
 src/include/catalog/pg_rewrite.h              |  9 +--------
 src/include/catalog/pg_seclabel.h             |  2 +-
 src/include/catalog/pg_sequence.h             |  9 +--------
 src/include/catalog/pg_shdepend.h             |  9 +--------
 src/include/catalog/pg_shdescription.h        |  9 +--------
 src/include/catalog/pg_shseclabel.h           |  4 +---
 src/include/catalog/pg_statistic.h            | 10 +---------
 src/include/catalog/pg_statistic_ext.h        |  9 +--------
 src/include/catalog/pg_subscription.h         |  4 +---
 src/include/catalog/pg_subscription_rel.h     |  4 +---
 src/include/catalog/pg_tablespace.h           |  9 +--------
 src/include/catalog/pg_transform.h            |  9 +--------
 src/include/catalog/pg_trigger.h              |  9 +--------
 src/include/catalog/pg_ts_config.h            |  4 +---
 src/include/catalog/pg_ts_config_map.h        |  4 +---
 src/include/catalog/pg_ts_dict.h              |  4 +---
 src/include/catalog/pg_ts_parser.h            |  4 +---
 src/include/catalog/pg_ts_template.h          |  4 +---
 src/include/catalog/pg_type.h                 |  9 +--------
 src/include/catalog/pg_user_mapping.h         |  9 +--------
 63 files changed, 63 insertions(+), 441 deletions(-)

diff --git a/src/include/catalog/genbki.h b/src/include/catalog/genbki.h
index 1b8e4e9e19..43e667af25 100644
--- a/src/include/catalog/genbki.h
+++ b/src/include/catalog/genbki.h
@@ -20,7 +20,7 @@
 #define GENBKI_H
 
 /* Introduces a catalog's structure definition */
-#define CATALOG(name,oid,oidmacro)     typedef struct CppConcat(FormData_,name)
+#define CATALOG(name,oid,oidmacro)     typedef struct 
CppConcat(FormData_,name) CppConcat(FormData_,name); typedef 
CppConcat(FormData_,name) *CppConcat(Form_,name); struct 
CppConcat(FormData_,name)
 
 /* Options that may appear after CATALOG (on the same line) */
 #define BKI_BOOTSTRAP
diff --git a/src/include/catalog/pg_aggregate.h 
b/src/include/catalog/pg_aggregate.h
index ff8a21daa8..83fd30c471 100644
--- a/src/include/catalog/pg_aggregate.h
+++ b/src/include/catalog/pg_aggregate.h
@@ -99,14 +99,7 @@ CATALOG(pg_aggregate,2600,AggregateRelationId)
        /* initial value for moving-agg state (can be NULL) */
        text            aggminitval BKI_DEFAULT(_null_);
 #endif
-} FormData_pg_aggregate;
-
-/* ----------------
- *             Form_pg_aggregate corresponds to a pointer to a tuple with
- *             the format of pg_aggregate relation.
- * ----------------
- */
-typedef FormData_pg_aggregate *Form_pg_aggregate;
+};
 
 #ifdef EXPOSE_TO_CLIENT_CODE
 
diff --git a/src/include/catalog/pg_am.h b/src/include/catalog/pg_am.h
index 706b5e81cb..1c852cc862 100644
--- a/src/include/catalog/pg_am.h
+++ b/src/include/catalog/pg_am.h
@@ -38,14 +38,7 @@ CATALOG(pg_am,2601,AccessMethodRelationId)
 
        /* see AMTYPE_xxx constants below */
        char            amtype;
-} FormData_pg_am;
-
-/* ----------------
- *             Form_pg_am corresponds to a pointer to a tuple with
- *             the format of pg_am relation.
- * ----------------
- */
-typedef FormData_pg_am *Form_pg_am;
+};
 
 #ifdef EXPOSE_TO_CLIENT_CODE
 
diff --git a/src/include/catalog/pg_amop.h b/src/include/catalog/pg_amop.h
index aa2be7b643..4c5313f56d 100644
--- a/src/include/catalog/pg_amop.h
+++ b/src/include/catalog/pg_amop.h
@@ -78,14 +78,7 @@ CATALOG(pg_amop,2602,AccessMethodOperatorRelationId)
 
        /* ordering opfamily OID, or 0 if search op */
        Oid                     amopsortfamily BKI_DEFAULT(0) 
BKI_LOOKUP(pg_opfamily);
-} FormData_pg_amop;
-
-/* ----------------
- *             Form_pg_amop corresponds to a pointer to a tuple with
- *             the format of pg_amop relation.
- * ----------------
- */
-typedef FormData_pg_amop *Form_pg_amop;
+};
 
 #ifdef EXPOSE_TO_CLIENT_CODE
 
diff --git a/src/include/catalog/pg_amproc.h b/src/include/catalog/pg_amproc.h
index 62ca564130..ee680e8c73 100644
--- a/src/include/catalog/pg_amproc.h
+++ b/src/include/catalog/pg_amproc.h
@@ -58,13 +58,6 @@ CATALOG(pg_amproc,2603,AccessMethodProcedureRelationId)
 
        /* OID of the proc */
        regproc         amproc BKI_LOOKUP(pg_proc);
-} FormData_pg_amproc;
-
-/* ----------------
- *             Form_pg_amproc corresponds to a pointer to a tuple with
- *             the format of pg_amproc relation.
- * ----------------
- */
-typedef FormData_pg_amproc *Form_pg_amproc;
+};
 
 #endif                                                 /* PG_AMPROC_H */
diff --git a/src/include/catalog/pg_attrdef.h b/src/include/catalog/pg_attrdef.h
index 4ec371bc4a..c2fa86e441 100644
--- a/src/include/catalog/pg_attrdef.h
+++ b/src/include/catalog/pg_attrdef.h
@@ -37,13 +37,6 @@ CATALOG(pg_attrdef,2604,AttrDefaultRelationId)
        pg_node_tree adbin BKI_FORCE_NOT_NULL;  /* nodeToString representation 
of
                                                                                
         * default */
 #endif
-} FormData_pg_attrdef;
-
-/* ----------------
- *             Form_pg_attrdef corresponds to a pointer to a tuple with
- *             the format of pg_attrdef relation.
- * ----------------
- */
-typedef FormData_pg_attrdef *Form_pg_attrdef;
+};
 
 #endif                                                 /* PG_ATTRDEF_H */
diff --git a/src/include/catalog/pg_attribute.h 
b/src/include/catalog/pg_attribute.h
index 04004b5703..611c0de648 100644
--- a/src/include/catalog/pg_attribute.h
+++ b/src/include/catalog/pg_attribute.h
@@ -181,7 +181,7 @@ CATALOG(pg_attribute,1249,AttributeRelationId) 
BKI_BOOTSTRAP BKI_ROWTYPE_OID(75,
         */
        anyarray        attmissingval BKI_DEFAULT(_null_);
 #endif
-} FormData_pg_attribute;
+};
 
 /*
  * ATTRIBUTE_FIXED_PART_SIZE is the size of the fixed-layout,
@@ -192,13 +192,6 @@ CATALOG(pg_attribute,1249,AttributeRelationId) 
BKI_BOOTSTRAP BKI_ROWTYPE_OID(75,
 #define ATTRIBUTE_FIXED_PART_SIZE \
        (offsetof(FormData_pg_attribute,attcollation) + sizeof(Oid))
 
-/* ----------------
- *             Form_pg_attribute corresponds to a pointer to a tuple with
- *             the format of pg_attribute relation.
- * ----------------
- */
-typedef FormData_pg_attribute *Form_pg_attribute;
-
 #ifdef EXPOSE_TO_CLIENT_CODE
 
 #define                  ATTRIBUTE_IDENTITY_ALWAYS             'a'
diff --git a/src/include/catalog/pg_auth_members.h 
b/src/include/catalog/pg_auth_members.h
index 644a25d1e5..a98e35f43a 100644
--- a/src/include/catalog/pg_auth_members.h
+++ b/src/include/catalog/pg_auth_members.h
@@ -33,13 +33,6 @@ CATALOG(pg_auth_members,1261,AuthMemRelationId) 
BKI_SHARED_RELATION BKI_ROWTYPE_
        Oid                     member;                 /* ID of a member of 
that role */
        Oid                     grantor;                /* who granted the 
membership */
        bool            admin_option;   /* granted with admin option? */
-} FormData_pg_auth_members;
-
-/* ----------------
- *             Form_pg_auth_members corresponds to a pointer to a tuple with
- *             the format of pg_auth_members relation.
- * ----------------
- */
-typedef FormData_pg_auth_members *Form_pg_auth_members;
+};
 
 #endif                                                 /* PG_AUTH_MEMBERS_H */
diff --git a/src/include/catalog/pg_authid.h b/src/include/catalog/pg_authid.h
index 6fcf645c01..b687a427c7 100644
--- a/src/include/catalog/pg_authid.h
+++ b/src/include/catalog/pg_authid.h
@@ -46,13 +46,6 @@ CATALOG(pg_authid,1260,AuthIdRelationId) BKI_SHARED_RELATION 
BKI_ROWTYPE_OID(284
        text            rolpassword;    /* password, if any */
        timestamptz rolvaliduntil;      /* password expiration time, if any */
 #endif
-} FormData_pg_authid;
-
-/* ----------------
- *             Form_pg_authid corresponds to a pointer to a tuple with
- *             the format of pg_authid relation.
- * ----------------
- */
-typedef FormData_pg_authid *Form_pg_authid;
+};
 
 #endif                                                 /* PG_AUTHID_H */
diff --git a/src/include/catalog/pg_cast.h b/src/include/catalog/pg_cast.h
index 85e31b0448..6e1c0abcc3 100644
--- a/src/include/catalog/pg_cast.h
+++ b/src/include/catalog/pg_cast.h
@@ -46,14 +46,7 @@ CATALOG(pg_cast,2605,CastRelationId)
 
        /* cast method */
        char            castmethod;
-} FormData_pg_cast;
-
-/* ----------------
- *             Form_pg_cast corresponds to a pointer to a tuple with
- *             the format of pg_cast relation.
- * ----------------
- */
-typedef FormData_pg_cast *Form_pg_cast;
+};
 
 #ifdef EXPOSE_TO_CLIENT_CODE
 
diff --git a/src/include/catalog/pg_class.h b/src/include/catalog/pg_class.h
index 090b6ba907..606258ca1d 100644
--- a/src/include/catalog/pg_class.h
+++ b/src/include/catalog/pg_class.h
@@ -136,19 +136,12 @@ CATALOG(pg_class,1259,RelationRelationId) BKI_BOOTSTRAP 
BKI_ROWTYPE_OID(83,Relat
        /* partition bound node tree */
        pg_node_tree relpartbound;
 #endif
-} FormData_pg_class;
+};
 
 /* Size of fixed part of pg_class tuples, not counting var-length fields */
 #define CLASS_TUPLE_SIZE \
         (offsetof(FormData_pg_class,relminmxid) + sizeof(TransactionId))
 
-/* ----------------
- *             Form_pg_class corresponds to a pointer to a tuple with
- *             the format of pg_class relation.
- * ----------------
- */
-typedef FormData_pg_class *Form_pg_class;
-
 #ifdef EXPOSE_TO_CLIENT_CODE
 
 #define                  RELKIND_RELATION                'r'   /* ordinary 
table */
diff --git a/src/include/catalog/pg_collation.h 
b/src/include/catalog/pg_collation.h
index d3366f361d..6d5ac60015 100644
--- a/src/include/catalog/pg_collation.h
+++ b/src/include/catalog/pg_collation.h
@@ -41,14 +41,7 @@ CATALOG(pg_collation,3456,CollationRelationId)
        text            collversion;    /* provider-dependent version of 
collation
                                                                 * data */
 #endif
-} FormData_pg_collation;
-
-/* ----------------
- *             Form_pg_collation corresponds to a pointer to a row with
- *             the format of pg_collation relation.
- * ----------------
- */
-typedef FormData_pg_collation *Form_pg_collation;
+};
 
 #ifdef EXPOSE_TO_CLIENT_CODE
 
diff --git a/src/include/catalog/pg_constraint.h 
b/src/include/catalog/pg_constraint.h
index c1e60c7dfd..7e27c3ceeb 100644
--- a/src/include/catalog/pg_constraint.h
+++ b/src/include/catalog/pg_constraint.h
@@ -145,14 +145,7 @@ CATALOG(pg_constraint,2606,ConstraintRelationId)
         */
        pg_node_tree conbin;
 #endif
-} FormData_pg_constraint;
-
-/* ----------------
- *             Form_pg_constraint corresponds to a pointer to a tuple with
- *             the format of pg_constraint relation.
- * ----------------
- */
-typedef FormData_pg_constraint *Form_pg_constraint;
+};
 
 #ifdef EXPOSE_TO_CLIENT_CODE
 
diff --git a/src/include/catalog/pg_conversion.h 
b/src/include/catalog/pg_conversion.h
index 49c70700ab..c6d56d0852 100644
--- a/src/include/catalog/pg_conversion.h
+++ b/src/include/catalog/pg_conversion.h
@@ -52,14 +52,7 @@ CATALOG(pg_conversion,2607,ConversionRelationId)
 
        /* true if this is a default conversion */
        bool            condefault BKI_DEFAULT(t);
-} FormData_pg_conversion;
-
-/* ----------------
- *             Form_pg_conversion corresponds to a pointer to a tuple with
- *             the format of pg_conversion relation.
- * ----------------
- */
-typedef FormData_pg_conversion *Form_pg_conversion;
+};
 
 
 extern ObjectAddress ConversionCreate(const char *conname, Oid connamespace,
diff --git a/src/include/catalog/pg_database.h 
b/src/include/catalog/pg_database.h
index 06fea45f53..91668ef8c1 100644
--- a/src/include/catalog/pg_database.h
+++ b/src/include/catalog/pg_database.h
@@ -71,13 +71,6 @@ CATALOG(pg_database,1262,DatabaseRelationId) 
BKI_SHARED_RELATION BKI_ROWTYPE_OID
        /* access permissions */
        aclitem         datacl[1];
 #endif
-} FormData_pg_database;
-
-/* ----------------
- *             Form_pg_database corresponds to a pointer to a tuple with
- *             the format of pg_database relation.
- * ----------------
- */
-typedef FormData_pg_database *Form_pg_database;
+};
 
 #endif                                                 /* PG_DATABASE_H */
diff --git a/src/include/catalog/pg_db_role_setting.h 
b/src/include/catalog/pg_db_role_setting.h
index 078586d841..47e12210f0 100644
--- a/src/include/catalog/pg_db_role_setting.h
+++ b/src/include/catalog/pg_db_role_setting.h
@@ -39,9 +39,7 @@ CATALOG(pg_db_role_setting,2964,DbRoleSettingRelationId) 
BKI_SHARED_RELATION
 #ifdef CATALOG_VARLEN                  /* variable-length fields start here */
        text            setconfig[1];   /* GUC settings to apply at login */
 #endif
-} FormData_pg_db_role_setting;
-
-typedef FormData_pg_db_role_setting * Form_pg_db_role_setting;
+};
 
 /*
  * prototypes for functions in pg_db_role_setting.h
diff --git a/src/include/catalog/pg_default_acl.h 
b/src/include/catalog/pg_default_acl.h
index 601b11e11c..cb4c2ead0d 100644
--- a/src/include/catalog/pg_default_acl.h
+++ b/src/include/catalog/pg_default_acl.h
@@ -38,14 +38,7 @@ CATALOG(pg_default_acl,826,DefaultAclRelationId)
        aclitem         defaclacl[1] BKI_FORCE_NOT_NULL;        /* permissions 
to add at
                                                                                
                         * CREATE time */
 #endif
-} FormData_pg_default_acl;
-
-/* ----------------
- *             Form_pg_default_acl corresponds to a pointer to a tuple with
- *             the format of pg_default_acl relation.
- * ----------------
- */
-typedef FormData_pg_default_acl *Form_pg_default_acl;
+};
 
 #ifdef EXPOSE_TO_CLIENT_CODE
 
diff --git a/src/include/catalog/pg_depend.h b/src/include/catalog/pg_depend.h
index f786445fb2..024a9d9b8c 100644
--- a/src/include/catalog/pg_depend.h
+++ b/src/include/catalog/pg_depend.h
@@ -61,13 +61,6 @@ CATALOG(pg_depend,2608,DependRelationId)
         * field.  See DependencyType in catalog/dependency.h.
         */
        char            deptype;                /* see codes in dependency.h */
-} FormData_pg_depend;
-
-/* ----------------
- *             Form_pg_depend corresponds to a pointer to a row with
- *             the format of pg_depend relation.
- * ----------------
- */
-typedef FormData_pg_depend *Form_pg_depend;
+};
 
 #endif                                                 /* PG_DEPEND_H */
diff --git a/src/include/catalog/pg_description.h 
b/src/include/catalog/pg_description.h
index bdf72b09d4..7c8e453c59 100644
--- a/src/include/catalog/pg_description.h
+++ b/src/include/catalog/pg_description.h
@@ -54,13 +54,6 @@ CATALOG(pg_description,2609,DescriptionRelationId)
 #ifdef CATALOG_VARLEN                  /* variable-length fields start here */
        text            description BKI_FORCE_NOT_NULL; /* description of 
object */
 #endif
-} FormData_pg_description;
-
-/* ----------------
- *             Form_pg_description corresponds to a pointer to a tuple with
- *             the format of pg_description relation.
- * ----------------
- */
-typedef FormData_pg_description * Form_pg_description;
+};
 
 #endif                                                 /* PG_DESCRIPTION_H */
diff --git a/src/include/catalog/pg_enum.h b/src/include/catalog/pg_enum.h
index e963cea0b2..b252f2db1f 100644
--- a/src/include/catalog/pg_enum.h
+++ b/src/include/catalog/pg_enum.h
@@ -34,14 +34,7 @@ CATALOG(pg_enum,3501,EnumRelationId)
        Oid                     enumtypid;              /* OID of owning enum 
type */
        float4          enumsortorder;  /* sort position of this enum value */
        NameData        enumlabel;              /* text representation of enum 
value */
-} FormData_pg_enum;
-
-/* ----------------
- *             Form_pg_enum corresponds to a pointer to a tuple with
- *             the format of pg_enum relation.
- * ----------------
- */
-typedef FormData_pg_enum *Form_pg_enum;
+};
 
 /*
  * prototypes for functions in pg_enum.c
diff --git a/src/include/catalog/pg_event_trigger.h 
b/src/include/catalog/pg_event_trigger.h
index 0c95563192..27e93fcca9 100644
--- a/src/include/catalog/pg_event_trigger.h
+++ b/src/include/catalog/pg_event_trigger.h
@@ -39,13 +39,6 @@ CATALOG(pg_event_trigger,3466,EventTriggerRelationId)
 #ifdef CATALOG_VARLEN
        text            evttags[1];             /* command TAGs this event 
trigger targets */
 #endif
-} FormData_pg_event_trigger;
-
-/* ----------------
- *             Form_pg_event_trigger corresponds to a pointer to a tuple with
- *             the format of pg_event_trigger relation.
- * ----------------
- */
-typedef FormData_pg_event_trigger *Form_pg_event_trigger;
+};
 
 #endif                                                 /* PG_EVENT_TRIGGER_H */
diff --git a/src/include/catalog/pg_extension.h 
b/src/include/catalog/pg_extension.h
index 9bdf06da31..cf0b2145f8 100644
--- a/src/include/catalog/pg_extension.h
+++ b/src/include/catalog/pg_extension.h
@@ -40,13 +40,6 @@ CATALOG(pg_extension,3079,ExtensionRelationId)
        Oid                     extconfig[1];   /* dumpable configuration 
tables */
        text            extcondition[1];        /* WHERE clauses for config 
tables */
 #endif
-} FormData_pg_extension;
-
-/* ----------------
- *             Form_pg_extension corresponds to a pointer to a tuple with
- *             the format of pg_extension relation.
- * ----------------
- */
-typedef FormData_pg_extension *Form_pg_extension;
+};
 
 #endif                                                 /* PG_EXTENSION_H */
diff --git a/src/include/catalog/pg_foreign_data_wrapper.h 
b/src/include/catalog/pg_foreign_data_wrapper.h
index 9ee9afd97c..5eb4ad5fce 100644
--- a/src/include/catalog/pg_foreign_data_wrapper.h
+++ b/src/include/catalog/pg_foreign_data_wrapper.h
@@ -38,13 +38,6 @@ 
CATALOG(pg_foreign_data_wrapper,2328,ForeignDataWrapperRelationId)
        aclitem         fdwacl[1];              /* access permissions */
        text            fdwoptions[1];  /* FDW options */
 #endif
-} FormData_pg_foreign_data_wrapper;
-
-/* ----------------
- *             Form_pg_fdw corresponds to a pointer to a tuple with
- *             the format of pg_fdw relation.
- * ----------------
- */
-typedef FormData_pg_foreign_data_wrapper *Form_pg_foreign_data_wrapper;
+};
 
 #endif                                                 /* 
PG_FOREIGN_DATA_WRAPPER_H */
diff --git a/src/include/catalog/pg_foreign_server.h 
b/src/include/catalog/pg_foreign_server.h
index bc155cd2d0..a45ac6f5fb 100644
--- a/src/include/catalog/pg_foreign_server.h
+++ b/src/include/catalog/pg_foreign_server.h
@@ -38,13 +38,6 @@ CATALOG(pg_foreign_server,1417,ForeignServerRelationId)
        aclitem         srvacl[1];              /* access permissions */
        text            srvoptions[1];  /* FDW-specific options */
 #endif
-} FormData_pg_foreign_server;
-
-/* ----------------
- *             Form_pg_foreign_server corresponds to a pointer to a tuple with
- *             the format of pg_foreign_server relation.
- * ----------------
- */
-typedef FormData_pg_foreign_server *Form_pg_foreign_server;
+};
 
 #endif                                                 /* PG_FOREIGN_SERVER_H 
*/
diff --git a/src/include/catalog/pg_foreign_table.h 
b/src/include/catalog/pg_foreign_table.h
index 1b77996ef8..bcfa3d6700 100644
--- a/src/include/catalog/pg_foreign_table.h
+++ b/src/include/catalog/pg_foreign_table.h
@@ -33,13 +33,6 @@ CATALOG(pg_foreign_table,3118,ForeignTableRelationId)
 #ifdef CATALOG_VARLEN                  /* variable-length fields start here */
        text            ftoptions[1];   /* FDW-specific options */
 #endif
-} FormData_pg_foreign_table;
-
-/* ----------------
- *             Form_pg_foreign_table corresponds to a pointer to a tuple with
- *             the format of pg_foreign_table relation.
- * ----------------
- */
-typedef FormData_pg_foreign_table *Form_pg_foreign_table;
+};
 
 #endif                                                 /* PG_FOREIGN_TABLE_H */
diff --git a/src/include/catalog/pg_index.h b/src/include/catalog/pg_index.h
index 2438374078..22d94e565e 100644
--- a/src/include/catalog/pg_index.h
+++ b/src/include/catalog/pg_index.h
@@ -56,14 +56,7 @@ CATALOG(pg_index,2610,IndexRelationId) BKI_SCHEMA_MACRO
        pg_node_tree indpred;           /* expression tree for predicate, if a 
partial
                                                                 * index; else 
NULL */
 #endif
-} FormData_pg_index;
-
-/* ----------------
- *             Form_pg_index corresponds to a pointer to a tuple with
- *             the format of pg_index relation.
- * ----------------
- */
-typedef FormData_pg_index *Form_pg_index;
+};
 
 #ifdef EXPOSE_TO_CLIENT_CODE
 
diff --git a/src/include/catalog/pg_inherits.h 
b/src/include/catalog/pg_inherits.h
index a2061ef787..b171c37a10 100644
--- a/src/include/catalog/pg_inherits.h
+++ b/src/include/catalog/pg_inherits.h
@@ -34,14 +34,7 @@ CATALOG(pg_inherits,2611,InheritsRelationId)
        Oid                     inhrelid;
        Oid                     inhparent;
        int32           inhseqno;
-} FormData_pg_inherits;
-
-/* ----------------
- *             Form_pg_inherits corresponds to a pointer to a tuple with
- *             the format of pg_inherits relation.
- * ----------------
- */
-typedef FormData_pg_inherits *Form_pg_inherits;
+};
 
 
 extern List *find_inheritance_children(Oid parentrelId, LOCKMODE lockmode);
diff --git a/src/include/catalog/pg_init_privs.h 
b/src/include/catalog/pg_init_privs.h
index f1c9776b03..f397afccf6 100644
--- a/src/include/catalog/pg_init_privs.h
+++ b/src/include/catalog/pg_init_privs.h
@@ -53,14 +53,7 @@ CATALOG(pg_init_privs,3394,InitPrivsRelationId)
 #ifdef CATALOG_VARLEN                  /* variable-length fields start here */
        aclitem         initprivs[1] BKI_FORCE_NOT_NULL;        /* initial 
privs on object */
 #endif
-} FormData_pg_init_privs;
-
-/* ----------------
- *             Form_pg_init_privs corresponds to a pointer to a tuple with
- *             the format of pg_init_privs relation.
- * ----------------
- */
-typedef FormData_pg_init_privs * Form_pg_init_privs;
+};
 
 /*
  * It is important to know if the initial privileges are from initdb or from an
diff --git a/src/include/catalog/pg_language.h 
b/src/include/catalog/pg_language.h
index 8aaba6ad20..1dd9713325 100644
--- a/src/include/catalog/pg_language.h
+++ b/src/include/catalog/pg_language.h
@@ -55,13 +55,6 @@ CATALOG(pg_language,2612,LanguageRelationId)
        /* Access privileges */
        aclitem         lanacl[1] BKI_DEFAULT(_null_);
 #endif
-} FormData_pg_language;
-
-/* ----------------
- *             Form_pg_language corresponds to a pointer to a tuple with
- *             the format of pg_language relation.
- * ----------------
- */
-typedef FormData_pg_language *Form_pg_language;
+};
 
 #endif                                                 /* PG_LANGUAGE_H */
diff --git a/src/include/catalog/pg_largeobject.h 
b/src/include/catalog/pg_largeobject.h
index db5ca8a765..def895696c 100644
--- a/src/include/catalog/pg_largeobject.h
+++ b/src/include/catalog/pg_largeobject.h
@@ -34,14 +34,7 @@ CATALOG(pg_largeobject,2613,LargeObjectRelationId)
        /* data has variable length, but we allow direct access; see inv_api.c 
*/
        bytea           data BKI_FORCE_NOT_NULL;        /* Data for page (may be
                                                                                
         * zero-length) */
-} FormData_pg_largeobject;
-
-/* ----------------
- *             Form_pg_largeobject corresponds to a pointer to a tuple with
- *             the format of pg_largeobject relation.
- * ----------------
- */
-typedef FormData_pg_largeobject *Form_pg_largeobject;
+};
 
 extern Oid     LargeObjectCreate(Oid loid);
 extern void LargeObjectDrop(Oid loid);
diff --git a/src/include/catalog/pg_largeobject_metadata.h 
b/src/include/catalog/pg_largeobject_metadata.h
index b628b34cf8..b36c451dcc 100644
--- a/src/include/catalog/pg_largeobject_metadata.h
+++ b/src/include/catalog/pg_largeobject_metadata.h
@@ -36,13 +36,6 @@ 
CATALOG(pg_largeobject_metadata,2995,LargeObjectMetadataRelationId)
 #ifdef CATALOG_VARLEN                  /* variable-length fields start here */
        aclitem         lomacl[1];              /* access permissions */
 #endif
-} FormData_pg_largeobject_metadata;
-
-/* ----------------
- *             Form_pg_largeobject_metadata corresponds to a pointer to a tuple
- *             with the format of pg_largeobject_metadata relation.
- * ----------------
- */
-typedef FormData_pg_largeobject_metadata *Form_pg_largeobject_metadata;
+};
 
 #endif                                                 /* 
PG_LARGEOBJECT_METADATA_H */
diff --git a/src/include/catalog/pg_namespace.h 
b/src/include/catalog/pg_namespace.h
index bc349e9c73..93d23dc17f 100644
--- a/src/include/catalog/pg_namespace.h
+++ b/src/include/catalog/pg_namespace.h
@@ -41,14 +41,7 @@ CATALOG(pg_namespace,2615,NamespaceRelationId)
 #ifdef CATALOG_VARLEN                  /* variable-length fields start here */
        aclitem         nspacl[1];
 #endif
-} FormData_pg_namespace;
-
-/* ----------------
- *             Form_pg_namespace corresponds to a pointer to a tuple with
- *             the format of pg_namespace relation.
- * ----------------
- */
-typedef FormData_pg_namespace *Form_pg_namespace;
+};
 
 /*
  * prototypes for functions in pg_namespace.c
diff --git a/src/include/catalog/pg_opclass.h b/src/include/catalog/pg_opclass.h
index 84853c14d3..61bd85d051 100644
--- a/src/include/catalog/pg_opclass.h
+++ b/src/include/catalog/pg_opclass.h
@@ -73,13 +73,6 @@ CATALOG(pg_opclass,2616,OperatorClassRelationId)
 
        /* type of data in index, or InvalidOid */
        Oid                     opckeytype BKI_DEFAULT(0) BKI_LOOKUP(pg_type);
-} FormData_pg_opclass;
-
-/* ----------------
- *             Form_pg_opclass corresponds to a pointer to a tuple with
- *             the format of pg_opclass relation.
- * ----------------
- */
-typedef FormData_pg_opclass *Form_pg_opclass;
+};
 
 #endif                                                 /* PG_OPCLASS_H */
diff --git a/src/include/catalog/pg_operator.h 
b/src/include/catalog/pg_operator.h
index 7c4f6862a8..7f1b94aa19 100644
--- a/src/include/catalog/pg_operator.h
+++ b/src/include/catalog/pg_operator.h
@@ -74,14 +74,7 @@ CATALOG(pg_operator,2617,OperatorRelationId)
 
        /* OID of join estimator, or 0 */
        regproc         oprjoin BKI_DEFAULT(-) BKI_LOOKUP(pg_proc);
-} FormData_pg_operator;
-
-/* ----------------
- *             Form_pg_operator corresponds to a pointer to a tuple with
- *             the format of pg_operator relation.
- * ----------------
- */
-typedef FormData_pg_operator *Form_pg_operator;
+};
 
 
 extern ObjectAddress OperatorCreate(const char *operatorName,
diff --git a/src/include/catalog/pg_opfamily.h 
b/src/include/catalog/pg_opfamily.h
index 0e672d5052..2d3d10807e 100644
--- a/src/include/catalog/pg_opfamily.h
+++ b/src/include/catalog/pg_opfamily.h
@@ -41,14 +41,7 @@ CATALOG(pg_opfamily,2753,OperatorFamilyRelationId)
 
        /* opfamily owner */
        Oid                     opfowner BKI_DEFAULT(PGUID);
-} FormData_pg_opfamily;
-
-/* ----------------
- *             Form_pg_opfamily corresponds to a pointer to a tuple with
- *             the format of pg_opfamily relation.
- * ----------------
- */
-typedef FormData_pg_opfamily *Form_pg_opfamily;
+};
 
 #ifdef EXPOSE_TO_CLIENT_CODE
 
diff --git a/src/include/catalog/pg_partitioned_table.h 
b/src/include/catalog/pg_partitioned_table.h
index 806905489f..2d50e730bd 100644
--- a/src/include/catalog/pg_partitioned_table.h
+++ b/src/include/catalog/pg_partitioned_table.h
@@ -51,13 +51,6 @@ CATALOG(pg_partitioned_table,3350,PartitionedRelationId)
        pg_node_tree partexprs;         /* list of expressions in the partition 
key;
                                                                 * one item for 
each zero entry in partattrs[] */
 #endif
-} FormData_pg_partitioned_table;
-
-/* ----------------
- *             Form_pg_partitioned_table corresponds to a pointer to a tuple 
with
- *             the format of pg_partitioned_table relation.
- * ----------------
- */
-typedef FormData_pg_partitioned_table *Form_pg_partitioned_table;
+};
 
 #endif                                                 /* 
PG_PARTITIONED_TABLE_H */
diff --git a/src/include/catalog/pg_pltemplate.h 
b/src/include/catalog/pg_pltemplate.h
index ce890004ef..0abe04ef18 100644
--- a/src/include/catalog/pg_pltemplate.h
+++ b/src/include/catalog/pg_pltemplate.h
@@ -40,13 +40,6 @@ CATALOG(pg_pltemplate,1136,PLTemplateRelationId) 
BKI_SHARED_RELATION
        text            tmpllibrary BKI_FORCE_NOT_NULL; /* path of shared 
library */
        aclitem         tmplacl[1];             /* access privileges for 
template */
 #endif
-} FormData_pg_pltemplate;
-
-/* ----------------
- *             Form_pg_pltemplate corresponds to a pointer to a row with
- *             the format of pg_pltemplate relation.
- * ----------------
- */
-typedef FormData_pg_pltemplate *Form_pg_pltemplate;
+};
 
 #endif                                                 /* PG_PLTEMPLATE_H */
diff --git a/src/include/catalog/pg_policy.h b/src/include/catalog/pg_policy.h
index 62a78d8049..e1f9e68719 100644
--- a/src/include/catalog/pg_policy.h
+++ b/src/include/catalog/pg_policy.h
@@ -40,13 +40,6 @@ CATALOG(pg_policy,3256,PolicyRelationId)
        pg_node_tree polqual;           /* Policy quals. */
        pg_node_tree polwithcheck;      /* WITH CHECK quals. */
 #endif
-} FormData_pg_policy;
-
-/* ----------------
- *             Form_pg_policy corresponds to a pointer to a row with
- *             the format of pg_policy relation.
- * ----------------
- */
-typedef FormData_pg_policy *Form_pg_policy;
+};
 
 #endif                                                 /* PG_POLICY_H */
diff --git a/src/include/catalog/pg_proc.h b/src/include/catalog/pg_proc.h
index dc29c06f62..e3245fd446 100644
--- a/src/include/catalog/pg_proc.h
+++ b/src/include/catalog/pg_proc.h
@@ -124,14 +124,7 @@ CATALOG(pg_proc,1255,ProcedureRelationId) BKI_BOOTSTRAP 
BKI_ROWTYPE_OID(81,Proce
        /* access permissions */
        aclitem         proacl[1] BKI_DEFAULT(_null_);
 #endif
-} FormData_pg_proc;
-
-/* ----------------
- *             Form_pg_proc corresponds to a pointer to a tuple with
- *             the format of pg_proc relation.
- * ----------------
- */
-typedef FormData_pg_proc *Form_pg_proc;
+};
 
 #ifdef EXPOSE_TO_CLIENT_CODE
 
diff --git a/src/include/catalog/pg_publication.h 
b/src/include/catalog/pg_publication.h
index d4bf5b1e2f..258281b58a 100644
--- a/src/include/catalog/pg_publication.h
+++ b/src/include/catalog/pg_publication.h
@@ -53,14 +53,7 @@ CATALOG(pg_publication,6104,PublicationRelationId)
        /* true if truncates are published */
        bool            pubtruncate;
 
-} FormData_pg_publication;
-
-/* ----------------
- *             Form_pg_publication corresponds to a pointer to a tuple with
- *             the format of pg_publication relation.
- * ----------------
- */
-typedef FormData_pg_publication *Form_pg_publication;
+};
 
 typedef struct PublicationActions
 {
diff --git a/src/include/catalog/pg_publication_rel.h 
b/src/include/catalog/pg_publication_rel.h
index 5f5bc92ab3..47258fad38 100644
--- a/src/include/catalog/pg_publication_rel.h
+++ b/src/include/catalog/pg_publication_rel.h
@@ -31,13 +31,6 @@ CATALOG(pg_publication_rel,6106,PublicationRelRelationId)
        Oid                     oid;                    /* oid */
        Oid                     prpubid;                /* Oid of the 
publication */
        Oid                     prrelid;                /* Oid of the relation 
*/
-} FormData_pg_publication_rel;
-
-/* ----------------
- *             Form_pg_publication_rel corresponds to a pointer to a tuple with
- *             the format of pg_publication_rel relation.
- * ----------------
- */
-typedef FormData_pg_publication_rel *Form_pg_publication_rel;
+};
 
 #endif                                                 /* PG_PUBLICATION_REL_H 
*/
diff --git a/src/include/catalog/pg_range.h b/src/include/catalog/pg_range.h
index b01a074d09..0329b8f025 100644
--- a/src/include/catalog/pg_range.h
+++ b/src/include/catalog/pg_range.h
@@ -45,14 +45,7 @@ CATALOG(pg_range,3541,RangeRelationId)
 
        /* subtype difference as a float8, or 0 */
        regproc         rngsubdiff BKI_LOOKUP(pg_proc);
-} FormData_pg_range;
-
-/* ----------------
- *             Form_pg_range corresponds to a pointer to a tuple with
- *             the format of pg_range relation.
- * ----------------
- */
-typedef FormData_pg_range *Form_pg_range;
+};
 
 /*
  * prototypes for functions in pg_range.c
diff --git a/src/include/catalog/pg_replication_origin.h 
b/src/include/catalog/pg_replication_origin.h
index b768584798..e22f2842bd 100644
--- a/src/include/catalog/pg_replication_origin.h
+++ b/src/include/catalog/pg_replication_origin.h
@@ -51,8 +51,6 @@ 
CATALOG(pg_replication_origin,6000,ReplicationOriginRelationId) BKI_SHARED_RELAT
 
 #ifdef CATALOG_VARLEN                  /* further variable-length fields */
 #endif
-} FormData_pg_replication_origin;
-
-typedef FormData_pg_replication_origin *Form_pg_replication_origin;
+};
 
 #endif                                                 /* 
PG_REPLICATION_ORIGIN_H */
diff --git a/src/include/catalog/pg_rewrite.h b/src/include/catalog/pg_rewrite.h
index ceb1def6e7..8f16dc7d8b 100644
--- a/src/include/catalog/pg_rewrite.h
+++ b/src/include/catalog/pg_rewrite.h
@@ -42,13 +42,6 @@ CATALOG(pg_rewrite,2618,RewriteRelationId)
        pg_node_tree ev_qual BKI_FORCE_NOT_NULL;
        pg_node_tree ev_action BKI_FORCE_NOT_NULL;
 #endif
-} FormData_pg_rewrite;
-
-/* ----------------
- *             Form_pg_rewrite corresponds to a pointer to a tuple with
- *             the format of pg_rewrite relation.
- * ----------------
- */
-typedef FormData_pg_rewrite *Form_pg_rewrite;
+};
 
 #endif                                                 /* PG_REWRITE_H */
diff --git a/src/include/catalog/pg_seclabel.h 
b/src/include/catalog/pg_seclabel.h
index 6e4e07eda6..d64594695d 100644
--- a/src/include/catalog/pg_seclabel.h
+++ b/src/include/catalog/pg_seclabel.h
@@ -35,6 +35,6 @@ CATALOG(pg_seclabel,3596,SecLabelRelationId)
        text            provider BKI_FORCE_NOT_NULL;    /* name of label 
provider */
        text            label BKI_FORCE_NOT_NULL;       /* security label of 
the object */
 #endif
-} FormData_pg_seclabel;
+};
 
 #endif                                                 /* PG_SECLABEL_H */
diff --git a/src/include/catalog/pg_sequence.h 
b/src/include/catalog/pg_sequence.h
index 897ad141ea..1c378ab24d 100644
--- a/src/include/catalog/pg_sequence.h
+++ b/src/include/catalog/pg_sequence.h
@@ -30,13 +30,6 @@ CATALOG(pg_sequence,2224,SequenceRelationId)
        int64           seqmin;
        int64           seqcache;
        bool            seqcycle;
-} FormData_pg_sequence;
-
-/* ----------------
- *             Form_pg_sequence corresponds to a pointer to a tuple with
- *             the format of pg_sequence relation.
- * ----------------
- */
-typedef FormData_pg_sequence *Form_pg_sequence;
+};
 
 #endif                                                 /* PG_SEQUENCE_H */
diff --git a/src/include/catalog/pg_shdepend.h 
b/src/include/catalog/pg_shdepend.h
index 915e37040d..609b3a4cfc 100644
--- a/src/include/catalog/pg_shdepend.h
+++ b/src/include/catalog/pg_shdepend.h
@@ -60,13 +60,6 @@ CATALOG(pg_shdepend,1214,SharedDependRelationId) 
BKI_SHARED_RELATION
         * field.  See SharedDependencyType in catalog/dependency.h.
         */
        char            deptype;                /* see codes in dependency.h */
-} FormData_pg_shdepend;
-
-/* ----------------
- *             Form_pg_shdepend corresponds to a pointer to a row with
- *             the format of pg_shdepend relation.
- * ----------------
- */
-typedef FormData_pg_shdepend *Form_pg_shdepend;
+};
 
 #endif                                                 /* PG_SHDEPEND_H */
diff --git a/src/include/catalog/pg_shdescription.h 
b/src/include/catalog/pg_shdescription.h
index 5817815c34..a0f6007759 100644
--- a/src/include/catalog/pg_shdescription.h
+++ b/src/include/catalog/pg_shdescription.h
@@ -46,13 +46,6 @@ CATALOG(pg_shdescription,2396,SharedDescriptionRelationId) 
BKI_SHARED_RELATION
 #ifdef CATALOG_VARLEN                  /* variable-length fields start here */
        text            description BKI_FORCE_NOT_NULL; /* description of 
object */
 #endif
-} FormData_pg_shdescription;
-
-/* ----------------
- *             Form_pg_shdescription corresponds to a pointer to a tuple with
- *             the format of pg_shdescription relation.
- * ----------------
- */
-typedef FormData_pg_shdescription * Form_pg_shdescription;
+};
 
 #endif                                                 /* PG_SHDESCRIPTION_H */
diff --git a/src/include/catalog/pg_shseclabel.h 
b/src/include/catalog/pg_shseclabel.h
index 577081031f..02d10fa75e 100644
--- a/src/include/catalog/pg_shseclabel.h
+++ b/src/include/catalog/pg_shseclabel.h
@@ -34,8 +34,6 @@ CATALOG(pg_shseclabel,3592,SharedSecLabelRelationId) 
BKI_SHARED_RELATION BKI_ROW
        text            provider BKI_FORCE_NOT_NULL;    /* name of label 
provider */
        text            label BKI_FORCE_NOT_NULL;       /* security label of 
the object */
 #endif
-} FormData_pg_shseclabel;
-
-typedef FormData_pg_shseclabel * Form_pg_shseclabel;
+};
 
 #endif                                                 /* PG_SHSECLABEL_H */
diff --git a/src/include/catalog/pg_statistic.h 
b/src/include/catalog/pg_statistic.h
index 207be54b9b..aec78830f3 100644
--- a/src/include/catalog/pg_statistic.h
+++ b/src/include/catalog/pg_statistic.h
@@ -121,18 +121,10 @@ CATALOG(pg_statistic,2619,StatisticRelationId)
        anyarray        stavalues4;
        anyarray        stavalues5;
 #endif
-} FormData_pg_statistic;
+};
 
 #define STATISTIC_NUM_SLOTS  5
 
-
-/* ----------------
- *             Form_pg_statistic corresponds to a pointer to a tuple with
- *             the format of pg_statistic relation.
- * ----------------
- */
-typedef FormData_pg_statistic *Form_pg_statistic;
-
 #ifdef EXPOSE_TO_CLIENT_CODE
 
 /*
diff --git a/src/include/catalog/pg_statistic_ext.h 
b/src/include/catalog/pg_statistic_ext.h
index e449f9efe8..2c128f89df 100644
--- a/src/include/catalog/pg_statistic_ext.h
+++ b/src/include/catalog/pg_statistic_ext.h
@@ -52,14 +52,7 @@ CATALOG(pg_statistic_ext,3381,StatisticExtRelationId)
        pg_mcv_list stxmcv;                     /* MCV (serialized) */
 #endif
 
-} FormData_pg_statistic_ext;
-
-/* ----------------
- *             Form_pg_statistic_ext corresponds to a pointer to a tuple with
- *             the format of pg_statistic_ext relation.
- * ----------------
- */
-typedef FormData_pg_statistic_ext *Form_pg_statistic_ext;
+};
 
 #ifdef EXPOSE_TO_CLIENT_CODE
 
diff --git a/src/include/catalog/pg_subscription.h 
b/src/include/catalog/pg_subscription.h
index 3cb13d897e..60fa168372 100644
--- a/src/include/catalog/pg_subscription.h
+++ b/src/include/catalog/pg_subscription.h
@@ -61,9 +61,7 @@ CATALOG(pg_subscription,6100,SubscriptionRelationId) 
BKI_SHARED_RELATION BKI_ROW
        /* List of publications subscribed to */
        text            subpublications[1] BKI_FORCE_NOT_NULL;
 #endif
-} FormData_pg_subscription;
-
-typedef FormData_pg_subscription *Form_pg_subscription;
+};
 
 typedef struct Subscription
 {
diff --git a/src/include/catalog/pg_subscription_rel.h 
b/src/include/catalog/pg_subscription_rel.h
index f7df814a18..3a1c811b29 100644
--- a/src/include/catalog/pg_subscription_rel.h
+++ b/src/include/catalog/pg_subscription_rel.h
@@ -36,9 +36,7 @@ CATALOG(pg_subscription_rel,6102,SubscriptionRelRelationId)
        char            srsubstate;             /* state of the relation in 
subscription */
        XLogRecPtr      srsublsn;               /* remote lsn of the state 
change used for
                                                                 * 
synchronization coordination */
-} FormData_pg_subscription_rel;
-
-typedef FormData_pg_subscription_rel *Form_pg_subscription_rel;
+};
 
 #ifdef EXPOSE_TO_CLIENT_CODE
 
diff --git a/src/include/catalog/pg_tablespace.h 
b/src/include/catalog/pg_tablespace.h
index 594a81cd9a..02cd8b3754 100644
--- a/src/include/catalog/pg_tablespace.h
+++ b/src/include/catalog/pg_tablespace.h
@@ -36,13 +36,6 @@ CATALOG(pg_tablespace,1213,TableSpaceRelationId) 
BKI_SHARED_RELATION
        aclitem         spcacl[1];              /* access permissions */
        text            spcoptions[1];  /* per-tablespace options */
 #endif
-} FormData_pg_tablespace;
-
-/* ----------------
- *             Form_pg_tablespace corresponds to a pointer to a tuple with
- *             the format of pg_tablespace relation.
- * ----------------
- */
-typedef FormData_pg_tablespace *Form_pg_tablespace;
+};
 
 #endif                                                 /* PG_TABLESPACE_H */
diff --git a/src/include/catalog/pg_transform.h 
b/src/include/catalog/pg_transform.h
index 1a255cc8ea..4456c0c649 100644
--- a/src/include/catalog/pg_transform.h
+++ b/src/include/catalog/pg_transform.h
@@ -33,13 +33,6 @@ CATALOG(pg_transform,3576,TransformRelationId)
        Oid                     trflang;
        regproc         trffromsql;
        regproc         trftosql;
-} FormData_pg_transform;
-
-/* ----------------
- *             Form_pg_transform corresponds to a pointer to a tuple with
- *             the format of pg_transform relation.
- * ----------------
- */
-typedef FormData_pg_transform *Form_pg_transform;
+};
 
 #endif                                                 /* PG_TRANSFORM_H */
diff --git a/src/include/catalog/pg_trigger.h b/src/include/catalog/pg_trigger.h
index 362be3a6ab..c1cad1c017 100644
--- a/src/include/catalog/pg_trigger.h
+++ b/src/include/catalog/pg_trigger.h
@@ -61,14 +61,7 @@ CATALOG(pg_trigger,2620,TriggerRelationId)
        NameData        tgoldtable;             /* old transition table, or 
NULL if none */
        NameData        tgnewtable;             /* new transition table, or 
NULL if none */
 #endif
-} FormData_pg_trigger;
-
-/* ----------------
- *             Form_pg_trigger corresponds to a pointer to a tuple with
- *             the format of pg_trigger relation.
- * ----------------
- */
-typedef FormData_pg_trigger *Form_pg_trigger;
+};
 
 #ifdef EXPOSE_TO_CLIENT_CODE
 
diff --git a/src/include/catalog/pg_ts_config.h 
b/src/include/catalog/pg_ts_config.h
index 7ab97a8aa3..23d942f549 100644
--- a/src/include/catalog/pg_ts_config.h
+++ b/src/include/catalog/pg_ts_config.h
@@ -43,8 +43,6 @@ CATALOG(pg_ts_config,3602,TSConfigRelationId)
 
        /* OID of parser */
        Oid                     cfgparser BKI_LOOKUP(pg_ts_parser);
-} FormData_pg_ts_config;
-
-typedef FormData_pg_ts_config *Form_pg_ts_config;
+};
 
 #endif                                                 /* PG_TS_CONFIG_H */
diff --git a/src/include/catalog/pg_ts_config_map.h 
b/src/include/catalog/pg_ts_config_map.h
index 7892e17d71..9ca6b11303 100644
--- a/src/include/catalog/pg_ts_config_map.h
+++ b/src/include/catalog/pg_ts_config_map.h
@@ -40,8 +40,6 @@ CATALOG(pg_ts_config_map,3603,TSConfigMapRelationId)
 
        /* dictionary to consult */
        Oid                     mapdict BKI_LOOKUP(pg_ts_dict);
-} FormData_pg_ts_config_map;
-
-typedef FormData_pg_ts_config_map *Form_pg_ts_config_map;
+};
 
 #endif                                                 /* PG_TS_CONFIG_MAP_H */
diff --git a/src/include/catalog/pg_ts_dict.h b/src/include/catalog/pg_ts_dict.h
index be7f016c11..7b4d6b99e2 100644
--- a/src/include/catalog/pg_ts_dict.h
+++ b/src/include/catalog/pg_ts_dict.h
@@ -47,8 +47,6 @@ CATALOG(pg_ts_dict,3600,TSDictionaryRelationId)
        /* options passed to dict_init() */
        text            dictinitoption;
 #endif
-} FormData_pg_ts_dict;
-
-typedef FormData_pg_ts_dict *Form_pg_ts_dict;
+};
 
 #endif                                                 /* PG_TS_DICT_H */
diff --git a/src/include/catalog/pg_ts_parser.h 
b/src/include/catalog/pg_ts_parser.h
index 88ef79d3ab..2986292ddb 100644
--- a/src/include/catalog/pg_ts_parser.h
+++ b/src/include/catalog/pg_ts_parser.h
@@ -50,8 +50,6 @@ CATALOG(pg_ts_parser,3601,TSParserRelationId)
 
        /* return descriptions of lexeme's types */
        regproc         prslextype BKI_LOOKUP(pg_proc);
-} FormData_pg_ts_parser;
-
-typedef FormData_pg_ts_parser *Form_pg_ts_parser;
+};
 
 #endif                                                 /* PG_TS_PARSER_H */
diff --git a/src/include/catalog/pg_ts_template.h 
b/src/include/catalog/pg_ts_template.h
index afaff027d3..5d50001817 100644
--- a/src/include/catalog/pg_ts_template.h
+++ b/src/include/catalog/pg_ts_template.h
@@ -41,8 +41,6 @@ CATALOG(pg_ts_template,3764,TSTemplateRelationId)
 
        /* base method of dictionary */
        regproc         tmpllexize BKI_LOOKUP(pg_proc);
-} FormData_pg_ts_template;
-
-typedef FormData_pg_ts_template *Form_pg_ts_template;
+};
 
 #endif                                                 /* PG_TS_TEMPLATE_H */
diff --git a/src/include/catalog/pg_type.h b/src/include/catalog/pg_type.h
index 2a584b4b13..6d9c2e614f 100644
--- a/src/include/catalog/pg_type.h
+++ b/src/include/catalog/pg_type.h
@@ -241,14 +241,7 @@ CATALOG(pg_type,1247,TypeRelationId) BKI_BOOTSTRAP 
BKI_ROWTYPE_OID(71,TypeRelati
         */
        aclitem         typacl[1] BKI_DEFAULT(_null_);
 #endif
-} FormData_pg_type;
-
-/* ----------------
- *             Form_pg_type corresponds to a pointer to a row with
- *             the format of pg_type relation.
- * ----------------
- */
-typedef FormData_pg_type *Form_pg_type;
+};
 
 #ifdef EXPOSE_TO_CLIENT_CODE
 
diff --git a/src/include/catalog/pg_user_mapping.h 
b/src/include/catalog/pg_user_mapping.h
index e496828dca..4d6d76ae4a 100644
--- a/src/include/catalog/pg_user_mapping.h
+++ b/src/include/catalog/pg_user_mapping.h
@@ -36,13 +36,6 @@ CATALOG(pg_user_mapping,1418,UserMappingRelationId)
 #ifdef CATALOG_VARLEN                  /* variable-length fields start here */
        text            umoptions[1];   /* user mapping options */
 #endif
-} FormData_pg_user_mapping;
-
-/* ----------------
- *             Form_pg_user_mapping corresponds to a pointer to a tuple with
- *             the format of pg_user_mapping relation.
- * ----------------
- */
-typedef FormData_pg_user_mapping *Form_pg_user_mapping;
+};
 
 #endif                                                 /* PG_USER_MAPPING_H */
-- 
2.22.0

Reply via email to