Something that came out of work on pg_dump recently. I added const decorations to the *info arguments of the dump* functions, to clarify that they don't modify that argument. Many other nearby functions modify their arguments, so this can help clarify these different APIs a bit.
From a2ec95a397a1e8a075a56079c6928ba3b1d2b6ce Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <pe...@eisentraut.org>
Date: Wed, 3 Feb 2021 13:10:24 +0100
Subject: [PATCH] pg_dump: Add const decorations

Add const decorations to the *info arguments of the dump* functions,
to clarify that they don't modify that argument.  Many other nearby
functions modify their arguments, so this can help clarify these
different APIs a bit.
---
 src/bin/pg_dump/pg_backup.h          |   2 +-
 src/bin/pg_dump/pg_backup_archiver.h |   4 +-
 src/bin/pg_dump/pg_dump.c            | 344 +++++++++++++--------------
 src/bin/pg_dump/pg_dump.h            |   2 +-
 4 files changed, 176 insertions(+), 176 deletions(-)

diff --git a/src/bin/pg_dump/pg_backup.h b/src/bin/pg_dump/pg_backup.h
index 9d0056a569..eea9f30a79 100644
--- a/src/bin/pg_dump/pg_backup.h
+++ b/src/bin/pg_dump/pg_backup.h
@@ -248,7 +248,7 @@ typedef int DumpId;
  * Function pointer prototypes for assorted callback methods.
  */
 
-typedef int (*DataDumperPtr) (Archive *AH, void *userArg);
+typedef int (*DataDumperPtr) (Archive *AH, const void *userArg);
 
 typedef void (*SetupWorkerPtrType) (Archive *AH);
 
diff --git a/src/bin/pg_dump/pg_backup_archiver.h 
b/src/bin/pg_dump/pg_backup_archiver.h
index a8ea5c7eae..9d0f03d562 100644
--- a/src/bin/pg_dump/pg_backup_archiver.h
+++ b/src/bin/pg_dump/pg_backup_archiver.h
@@ -382,7 +382,7 @@ struct _tocEntry
        int                     nDeps;                  /* number of 
dependencies */
 
        DataDumperPtr dataDumper;       /* Routine to dump data for object */
-       void       *dataDumperArg;      /* Arg for above routine */
+       const void *dataDumperArg;      /* Arg for above routine */
        void       *formatData;         /* TOC Entry data specific to file 
format */
 
        /* working state while dumping/restoring */
@@ -421,7 +421,7 @@ typedef struct _archiveOpts
        const DumpId *deps;
        int                     nDeps;
        DataDumperPtr dumpFn;
-       void       *dumpArg;
+       const void *dumpArg;
 } ArchiveOpts;
 #define ARCHIVE_OPTS(...) &(ArchiveOpts){__VA_ARGS__}
 /* Called to add a TOC entry */
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index 39da742e32..3f1f404e4c 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -159,8 +159,8 @@ static void expand_table_name_patterns(Archive *fout,
                                                                           
SimpleOidList *oids,
                                                                           bool 
strict_names);
 static NamespaceInfo *findNamespace(Oid nsoid);
-static void dumpTableData(Archive *fout, TableDataInfo *tdinfo);
-static void refreshMatViewData(Archive *fout, TableDataInfo *tdinfo);
+static void dumpTableData(Archive *fout, const TableDataInfo *tdinfo);
+static void refreshMatViewData(Archive *fout, const TableDataInfo *tdinfo);
 static void guessConstraintInheritance(TableInfo *tblinfo, int numTables);
 static void dumpComment(Archive *fout, const char *type, const char *name,
                                                const char *namespace, const 
char *owner,
@@ -174,53 +174,53 @@ static void dumpSecLabel(Archive *fout, const char *type, 
const char *name,
 static int     findSecLabels(Archive *fout, Oid classoid, Oid objoid,
                                                  SecLabelItem **items);
 static int     collectSecLabels(Archive *fout, SecLabelItem **items);
-static void dumpDumpableObject(Archive *fout, DumpableObject *dobj);
-static void dumpNamespace(Archive *fout, NamespaceInfo *nspinfo);
-static void dumpExtension(Archive *fout, ExtensionInfo *extinfo);
-static void dumpType(Archive *fout, TypeInfo *tyinfo);
-static void dumpBaseType(Archive *fout, TypeInfo *tyinfo);
-static void dumpEnumType(Archive *fout, TypeInfo *tyinfo);
-static void dumpRangeType(Archive *fout, TypeInfo *tyinfo);
-static void dumpUndefinedType(Archive *fout, TypeInfo *tyinfo);
-static void dumpDomain(Archive *fout, TypeInfo *tyinfo);
-static void dumpCompositeType(Archive *fout, TypeInfo *tyinfo);
-static void dumpCompositeTypeColComments(Archive *fout, TypeInfo *tyinfo);
-static void dumpShellType(Archive *fout, ShellTypeInfo *stinfo);
-static void dumpProcLang(Archive *fout, ProcLangInfo *plang);
-static void dumpFunc(Archive *fout, FuncInfo *finfo);
-static void dumpCast(Archive *fout, CastInfo *cast);
-static void dumpTransform(Archive *fout, TransformInfo *transform);
-static void dumpOpr(Archive *fout, OprInfo *oprinfo);
-static void dumpAccessMethod(Archive *fout, AccessMethodInfo *oprinfo);
-static void dumpOpclass(Archive *fout, OpclassInfo *opcinfo);
-static void dumpOpfamily(Archive *fout, OpfamilyInfo *opfinfo);
-static void dumpCollation(Archive *fout, CollInfo *collinfo);
-static void dumpConversion(Archive *fout, ConvInfo *convinfo);
-static void dumpRule(Archive *fout, RuleInfo *rinfo);
-static void dumpAgg(Archive *fout, AggInfo *agginfo);
-static void dumpTrigger(Archive *fout, TriggerInfo *tginfo);
-static void dumpEventTrigger(Archive *fout, EventTriggerInfo *evtinfo);
-static void dumpTable(Archive *fout, TableInfo *tbinfo);
-static void dumpTableSchema(Archive *fout, TableInfo *tbinfo);
-static void dumpTableAttach(Archive *fout, TableAttachInfo *tbinfo);
-static void dumpAttrDef(Archive *fout, AttrDefInfo *adinfo);
-static void dumpSequence(Archive *fout, TableInfo *tbinfo);
-static void dumpSequenceData(Archive *fout, TableDataInfo *tdinfo);
-static void dumpIndex(Archive *fout, IndxInfo *indxinfo);
-static void dumpIndexAttach(Archive *fout, IndexAttachInfo *attachinfo);
-static void dumpStatisticsExt(Archive *fout, StatsExtInfo *statsextinfo);
-static void dumpConstraint(Archive *fout, ConstraintInfo *coninfo);
-static void dumpTableConstraintComment(Archive *fout, ConstraintInfo *coninfo);
-static void dumpTSParser(Archive *fout, TSParserInfo *prsinfo);
-static void dumpTSDictionary(Archive *fout, TSDictInfo *dictinfo);
-static void dumpTSTemplate(Archive *fout, TSTemplateInfo *tmplinfo);
-static void dumpTSConfig(Archive *fout, TSConfigInfo *cfginfo);
-static void dumpForeignDataWrapper(Archive *fout, FdwInfo *fdwinfo);
-static void dumpForeignServer(Archive *fout, ForeignServerInfo *srvinfo);
+static void dumpDumpableObject(Archive *fout, const DumpableObject *dobj);
+static void dumpNamespace(Archive *fout, const NamespaceInfo *nspinfo);
+static void dumpExtension(Archive *fout, const ExtensionInfo *extinfo);
+static void dumpType(Archive *fout, const TypeInfo *tyinfo);
+static void dumpBaseType(Archive *fout, const TypeInfo *tyinfo);
+static void dumpEnumType(Archive *fout, const TypeInfo *tyinfo);
+static void dumpRangeType(Archive *fout, const TypeInfo *tyinfo);
+static void dumpUndefinedType(Archive *fout, const TypeInfo *tyinfo);
+static void dumpDomain(Archive *fout, const TypeInfo *tyinfo);
+static void dumpCompositeType(Archive *fout, const TypeInfo *tyinfo);
+static void dumpCompositeTypeColComments(Archive *fout, const TypeInfo 
*tyinfo);
+static void dumpShellType(Archive *fout, const ShellTypeInfo *stinfo);
+static void dumpProcLang(Archive *fout, const ProcLangInfo *plang);
+static void dumpFunc(Archive *fout, const FuncInfo *finfo);
+static void dumpCast(Archive *fout, const CastInfo *cast);
+static void dumpTransform(Archive *fout, const TransformInfo *transform);
+static void dumpOpr(Archive *fout, const OprInfo *oprinfo);
+static void dumpAccessMethod(Archive *fout, const AccessMethodInfo *oprinfo);
+static void dumpOpclass(Archive *fout, const OpclassInfo *opcinfo);
+static void dumpOpfamily(Archive *fout, const OpfamilyInfo *opfinfo);
+static void dumpCollation(Archive *fout, const CollInfo *collinfo);
+static void dumpConversion(Archive *fout, const ConvInfo *convinfo);
+static void dumpRule(Archive *fout, const RuleInfo *rinfo);
+static void dumpAgg(Archive *fout, const AggInfo *agginfo);
+static void dumpTrigger(Archive *fout, const TriggerInfo *tginfo);
+static void dumpEventTrigger(Archive *fout, const EventTriggerInfo *evtinfo);
+static void dumpTable(Archive *fout, const TableInfo *tbinfo);
+static void dumpTableSchema(Archive *fout, const TableInfo *tbinfo);
+static void dumpTableAttach(Archive *fout, const TableAttachInfo *tbinfo);
+static void dumpAttrDef(Archive *fout, const AttrDefInfo *adinfo);
+static void dumpSequence(Archive *fout, const TableInfo *tbinfo);
+static void dumpSequenceData(Archive *fout, const TableDataInfo *tdinfo);
+static void dumpIndex(Archive *fout, const IndxInfo *indxinfo);
+static void dumpIndexAttach(Archive *fout, const IndexAttachInfo *attachinfo);
+static void dumpStatisticsExt(Archive *fout, const StatsExtInfo *statsextinfo);
+static void dumpConstraint(Archive *fout, const ConstraintInfo *coninfo);
+static void dumpTableConstraintComment(Archive *fout, const ConstraintInfo 
*coninfo);
+static void dumpTSParser(Archive *fout, const TSParserInfo *prsinfo);
+static void dumpTSDictionary(Archive *fout, const TSDictInfo *dictinfo);
+static void dumpTSTemplate(Archive *fout, const TSTemplateInfo *tmplinfo);
+static void dumpTSConfig(Archive *fout, const TSConfigInfo *cfginfo);
+static void dumpForeignDataWrapper(Archive *fout, const FdwInfo *fdwinfo);
+static void dumpForeignServer(Archive *fout, const ForeignServerInfo *srvinfo);
 static void dumpUserMappings(Archive *fout,
                                                         const char 
*servername, const char *namespace,
                                                         const char *owner, 
CatalogId catalogId, DumpId dumpId);
-static void dumpDefaultACL(Archive *fout, DefaultACLInfo *daclinfo);
+static void dumpDefaultACL(Archive *fout, const DefaultACLInfo *daclinfo);
 
 static DumpId dumpACL(Archive *fout, DumpId objDumpId, DumpId altDumpId,
                                          const char *type, const char *name, 
const char *subname,
@@ -230,40 +230,40 @@ static DumpId dumpACL(Archive *fout, DumpId objDumpId, 
DumpId altDumpId,
 
 static void getDependencies(Archive *fout);
 static void BuildArchiveDependencies(Archive *fout);
-static void findDumpableDependencies(ArchiveHandle *AH, DumpableObject *dobj,
+static void findDumpableDependencies(ArchiveHandle *AH, const DumpableObject 
*dobj,
                                                                         DumpId 
**dependencies, int *nDeps, int *allocDeps);
 
 static DumpableObject *createBoundaryObjects(void);
 static void addBoundaryDependencies(DumpableObject **dobjs, int numObjs,
                                                                        
DumpableObject *boundaryObjs);
 
-static void addConstrChildIdxDeps(DumpableObject *dobj, IndxInfo *refidx);
+static void addConstrChildIdxDeps(DumpableObject *dobj, const IndxInfo 
*refidx);
 static void getDomainConstraints(Archive *fout, TypeInfo *tyinfo);
 static void getTableData(DumpOptions *dopt, TableInfo *tblinfo, int numTables, 
char relkind);
 static void makeTableDataInfo(DumpOptions *dopt, TableInfo *tbinfo);
 static void buildMatViewRefreshDependencies(Archive *fout);
 static void getTableDataFKConstraints(void);
-static char *format_function_arguments(FuncInfo *finfo, char *funcargs,
+static char *format_function_arguments(const FuncInfo *finfo, const char 
*funcargs,
                                                                           bool 
is_agg);
 static char *format_function_arguments_old(Archive *fout,
-                                                                               
   FuncInfo *finfo, int nallargs,
+                                                                               
   const FuncInfo *finfo, int nallargs,
                                                                                
   char **allargtypes,
                                                                                
   char **argmodes,
                                                                                
   char **argnames);
 static char *format_function_signature(Archive *fout,
-                                                                          
FuncInfo *finfo, bool honor_quotes);
+                                                                          
const FuncInfo *finfo, bool honor_quotes);
 static char *convertRegProcReference(const char *proc);
 static char *getFormattedOperatorName(const char *oproid);
 static char *convertTSFunction(Archive *fout, Oid funcOid);
 static Oid     findLastBuiltinOid_V71(Archive *fout);
 static char *getFormattedTypeName(Archive *fout, Oid oid, OidOptions opts);
 static void getBlobs(Archive *fout);
-static void dumpBlob(Archive *fout, BlobInfo *binfo);
-static int     dumpBlobs(Archive *fout, void *arg);
-static void dumpPolicy(Archive *fout, PolicyInfo *polinfo);
-static void dumpPublication(Archive *fout, PublicationInfo *pubinfo);
-static void dumpPublicationTable(Archive *fout, PublicationRelInfo *pubrinfo);
-static void dumpSubscription(Archive *fout, SubscriptionInfo *subinfo);
+static void dumpBlob(Archive *fout, const BlobInfo *binfo);
+static int     dumpBlobs(Archive *fout, const void *arg);
+static void dumpPolicy(Archive *fout, const PolicyInfo *polinfo);
+static void dumpPublication(Archive *fout, const PublicationInfo *pubinfo);
+static void dumpPublicationTable(Archive *fout, const PublicationRelInfo 
*pubrinfo);
+static void dumpSubscription(Archive *fout, const SubscriptionInfo *subinfo);
 static void dumpDatabase(Archive *AH);
 static void dumpDatabaseConfig(Archive *AH, PQExpBuffer outbuf,
                                                           const char *dbname, 
Oid dboid);
@@ -281,21 +281,21 @@ static void binary_upgrade_set_pg_class_oids(Archive 
*fout,
                                                                                
         PQExpBuffer upgrade_buffer,
                                                                                
         Oid pg_class_oid, bool is_index);
 static void binary_upgrade_extension_member(PQExpBuffer upgrade_buffer,
-                                                                               
        DumpableObject *dobj,
+                                                                               
        const DumpableObject *dobj,
                                                                                
        const char *objtype,
                                                                                
        const char *objname,
                                                                                
        const char *objnamespace);
-static const char *getAttrName(int attrnum, TableInfo *tblInfo);
+static const char *getAttrName(int attrnum, const TableInfo *tblInfo);
 static const char *fmtCopyColumnList(const TableInfo *ti, PQExpBuffer buffer);
 static bool nonemptyReloptions(const char *reloptions);
-static void appendIndexCollationVersion(PQExpBuffer buffer, IndxInfo *indxinfo,
+static void appendIndexCollationVersion(PQExpBuffer buffer, const IndxInfo 
*indxinfo,
                                                                                
int enc, bool coll_unknown,
                                                                                
Archive *fout);
 static void appendReloptionsArrayAH(PQExpBuffer buffer, const char *reloptions,
                                                                        const 
char *prefix, Archive *fout);
 static char *get_synchronized_snapshot(Archive *fout);
 static void setupDumpWorker(Archive *AHX);
-static TableInfo *getRootTableInfo(TableInfo *tbinfo);
+static TableInfo *getRootTableInfo(const TableInfo *tbinfo);
 
 
 int
@@ -1851,7 +1851,7 @@ selectDumpableObject(DumpableObject *dobj, Archive *fout)
  *       to be dumped.
  */
 static int
-dumpTableData_copy(Archive *fout, void *dcontext)
+dumpTableData_copy(Archive *fout, const void *dcontext)
 {
        TableDataInfo *tdinfo = (TableDataInfo *) dcontext;
        TableInfo  *tbinfo = tdinfo->tdtable;
@@ -2011,7 +2011,7 @@ dumpTableData_copy(Archive *fout, void *dcontext)
  * E'' strings, or dollar-quoted strings.  So don't emit anything like that.
  */
 static int
-dumpTableData_insert(Archive *fout, void *dcontext)
+dumpTableData_insert(Archive *fout, const void *dcontext)
 {
        TableDataInfo *tdinfo = (TableDataInfo *) dcontext;
        TableInfo  *tbinfo = tdinfo->tdtable;
@@ -2235,7 +2235,7 @@ dumpTableData_insert(Archive *fout, void *dcontext)
  *     get the root TableInfo for the given partition table.
  */
 static TableInfo *
-getRootTableInfo(TableInfo *tbinfo)
+getRootTableInfo(const TableInfo *tbinfo)
 {
        TableInfo  *parentTbinfo;
 
@@ -2259,7 +2259,7 @@ getRootTableInfo(TableInfo *tbinfo)
  * Actually, this just makes an ArchiveEntry for the table contents.
  */
 static void
-dumpTableData(Archive *fout, TableDataInfo *tdinfo)
+dumpTableData(Archive *fout, const TableDataInfo *tdinfo)
 {
        DumpOptions *dopt = fout->dopt;
        TableInfo  *tbinfo = tdinfo->tdtable;
@@ -2351,7 +2351,7 @@ dumpTableData(Archive *fout, TableDataInfo *tdinfo)
  * statement.
  */
 static void
-refreshMatViewData(Archive *fout, TableDataInfo *tdinfo)
+refreshMatViewData(Archive *fout, const TableDataInfo *tdinfo)
 {
        TableInfo  *tbinfo = tdinfo->tdtable;
        PQExpBuffer q;
@@ -3462,7 +3462,7 @@ getBlobs(Archive *fout)
  * dump the definition (metadata) of the given large object
  */
 static void
-dumpBlob(Archive *fout, BlobInfo *binfo)
+dumpBlob(Archive *fout, const BlobInfo *binfo)
 {
        PQExpBuffer cquery = createPQExpBuffer();
        PQExpBuffer dquery = createPQExpBuffer();
@@ -3512,7 +3512,7 @@ dumpBlob(Archive *fout, BlobInfo *binfo)
  *     dump the data contents of all large objects
  */
 static int
-dumpBlobs(Archive *fout, void *arg)
+dumpBlobs(Archive *fout, const void *arg)
 {
        const char *blobQry;
        const char *blobFetchQry;
@@ -3746,7 +3746,7 @@ getPolicies(Archive *fout, TableInfo tblinfo[], int 
numTables)
  *       dump the definition of the given policy
  */
 static void
-dumpPolicy(Archive *fout, PolicyInfo *polinfo)
+dumpPolicy(Archive *fout, const PolicyInfo *polinfo)
 {
        DumpOptions *dopt = fout->dopt;
        TableInfo  *tbinfo = polinfo->poltable;
@@ -3977,7 +3977,7 @@ getPublications(Archive *fout, int *numPublications)
  *       dump the definition of the given publication
  */
 static void
-dumpPublication(Archive *fout, PublicationInfo *pubinfo)
+dumpPublication(Archive *fout, const PublicationInfo *pubinfo)
 {
        PQExpBuffer delq;
        PQExpBuffer query;
@@ -4157,7 +4157,7 @@ getPublicationTables(Archive *fout, TableInfo tblinfo[], 
int numTables)
  *       dump the definition of the given publication table mapping
  */
 static void
-dumpPublicationTable(Archive *fout, PublicationRelInfo *pubrinfo)
+dumpPublicationTable(Archive *fout, const PublicationRelInfo *pubrinfo)
 {
        PublicationInfo *pubinfo = pubrinfo->publication;
        TableInfo  *tbinfo = pubrinfo->pubtable;
@@ -4337,7 +4337,7 @@ getSubscriptions(Archive *fout)
  *       dump the definition of the given subscription
  */
 static void
-dumpSubscription(Archive *fout, SubscriptionInfo *subinfo)
+dumpSubscription(Archive *fout, const SubscriptionInfo *subinfo)
 {
        PQExpBuffer delq;
        PQExpBuffer query;
@@ -4426,7 +4426,7 @@ dumpSubscription(Archive *fout, SubscriptionInfo *subinfo)
 static void
 append_depends_on_extension(Archive *fout,
                                                        PQExpBuffer create,
-                                                       DumpableObject *dobj,
+                                                       const DumpableObject 
*dobj,
                                                        const char *catalog,
                                                        const char *keyword,
                                                        const char *objname)
@@ -4697,7 +4697,7 @@ binary_upgrade_set_pg_class_oids(Archive *fout,
  */
 static void
 binary_upgrade_extension_member(PQExpBuffer upgrade_buffer,
-                                                               DumpableObject 
*dobj,
+                                                               const 
DumpableObject *dobj,
                                                                const char 
*objtype,
                                                                const char 
*objname,
                                                                const char 
*objnamespace)
@@ -7697,7 +7697,7 @@ getConstraints(Archive *fout, TableInfo tblinfo[], int 
numTables)
  * restored until the index is fully marked valid.
  */
 static void
-addConstrChildIdxDeps(DumpableObject *dobj, IndxInfo *refidx)
+addConstrChildIdxDeps(DumpableObject *dobj, const IndxInfo *refidx)
 {
        SimplePtrListCell *cell;
 
@@ -9014,7 +9014,7 @@ getTableAttrs(Archive *fout, TableInfo *tblinfo, int 
numTables)
  * must be kept in sync with this decision.
  */
 bool
-shouldPrintColumn(DumpOptions *dopt, TableInfo *tbinfo, int colno)
+shouldPrintColumn(const DumpOptions *dopt, const TableInfo *tbinfo, int colno)
 {
        if (dopt->binary_upgrade)
                return true;
@@ -9903,7 +9903,7 @@ dumpComment(Archive *fout, const char *type, const char 
*name,
  * and its columns.
  */
 static void
-dumpTableComment(Archive *fout, TableInfo *tbinfo,
+dumpTableComment(Archive *fout, const TableInfo *tbinfo,
                                 const char *reltypename)
 {
        DumpOptions *dopt = fout->dopt;
@@ -10139,123 +10139,123 @@ collectComments(Archive *fout, CommentItem **items)
  * ArchiveEntries (TOC objects) for each object to be dumped.
  */
 static void
-dumpDumpableObject(Archive *fout, DumpableObject *dobj)
+dumpDumpableObject(Archive *fout, const DumpableObject *dobj)
 {
        switch (dobj->objType)
        {
                case DO_NAMESPACE:
-                       dumpNamespace(fout, (NamespaceInfo *) dobj);
+                       dumpNamespace(fout, (const NamespaceInfo *) dobj);
                        break;
                case DO_EXTENSION:
-                       dumpExtension(fout, (ExtensionInfo *) dobj);
+                       dumpExtension(fout, (const ExtensionInfo *) dobj);
                        break;
                case DO_TYPE:
-                       dumpType(fout, (TypeInfo *) dobj);
+                       dumpType(fout, (const TypeInfo *) dobj);
                        break;
                case DO_SHELL_TYPE:
-                       dumpShellType(fout, (ShellTypeInfo *) dobj);
+                       dumpShellType(fout, (const ShellTypeInfo *) dobj);
                        break;
                case DO_FUNC:
-                       dumpFunc(fout, (FuncInfo *) dobj);
+                       dumpFunc(fout, (const FuncInfo *) dobj);
                        break;
                case DO_AGG:
-                       dumpAgg(fout, (AggInfo *) dobj);
+                       dumpAgg(fout, (const AggInfo *) dobj);
                        break;
                case DO_OPERATOR:
-                       dumpOpr(fout, (OprInfo *) dobj);
+                       dumpOpr(fout, (const OprInfo *) dobj);
                        break;
                case DO_ACCESS_METHOD:
-                       dumpAccessMethod(fout, (AccessMethodInfo *) dobj);
+                       dumpAccessMethod(fout, (const AccessMethodInfo *) dobj);
                        break;
                case DO_OPCLASS:
-                       dumpOpclass(fout, (OpclassInfo *) dobj);
+                       dumpOpclass(fout, (const OpclassInfo *) dobj);
                        break;
                case DO_OPFAMILY:
-                       dumpOpfamily(fout, (OpfamilyInfo *) dobj);
+                       dumpOpfamily(fout, (const OpfamilyInfo *) dobj);
                        break;
                case DO_COLLATION:
-                       dumpCollation(fout, (CollInfo *) dobj);
+                       dumpCollation(fout, (const CollInfo *) dobj);
                        break;
                case DO_CONVERSION:
-                       dumpConversion(fout, (ConvInfo *) dobj);
+                       dumpConversion(fout, (const ConvInfo *) dobj);
                        break;
                case DO_TABLE:
-                       dumpTable(fout, (TableInfo *) dobj);
+                       dumpTable(fout, (const TableInfo *) dobj);
                        break;
                case DO_TABLE_ATTACH:
-                       dumpTableAttach(fout, (TableAttachInfo *) dobj);
+                       dumpTableAttach(fout, (const TableAttachInfo *) dobj);
                        break;
                case DO_ATTRDEF:
-                       dumpAttrDef(fout, (AttrDefInfo *) dobj);
+                       dumpAttrDef(fout, (const AttrDefInfo *) dobj);
                        break;
                case DO_INDEX:
-                       dumpIndex(fout, (IndxInfo *) dobj);
+                       dumpIndex(fout, (const IndxInfo *) dobj);
                        break;
                case DO_INDEX_ATTACH:
-                       dumpIndexAttach(fout, (IndexAttachInfo *) dobj);
+                       dumpIndexAttach(fout, (const IndexAttachInfo *) dobj);
                        break;
                case DO_STATSEXT:
-                       dumpStatisticsExt(fout, (StatsExtInfo *) dobj);
+                       dumpStatisticsExt(fout, (const StatsExtInfo *) dobj);
                        break;
                case DO_REFRESH_MATVIEW:
-                       refreshMatViewData(fout, (TableDataInfo *) dobj);
+                       refreshMatViewData(fout, (const TableDataInfo *) dobj);
                        break;
                case DO_RULE:
-                       dumpRule(fout, (RuleInfo *) dobj);
+                       dumpRule(fout, (const RuleInfo *) dobj);
                        break;
                case DO_TRIGGER:
-                       dumpTrigger(fout, (TriggerInfo *) dobj);
+                       dumpTrigger(fout, (const TriggerInfo *) dobj);
                        break;
                case DO_EVENT_TRIGGER:
-                       dumpEventTrigger(fout, (EventTriggerInfo *) dobj);
+                       dumpEventTrigger(fout, (const EventTriggerInfo *) dobj);
                        break;
                case DO_CONSTRAINT:
-                       dumpConstraint(fout, (ConstraintInfo *) dobj);
+                       dumpConstraint(fout, (const ConstraintInfo *) dobj);
                        break;
                case DO_FK_CONSTRAINT:
-                       dumpConstraint(fout, (ConstraintInfo *) dobj);
+                       dumpConstraint(fout, (const ConstraintInfo *) dobj);
                        break;
                case DO_PROCLANG:
-                       dumpProcLang(fout, (ProcLangInfo *) dobj);
+                       dumpProcLang(fout, (const ProcLangInfo *) dobj);
                        break;
                case DO_CAST:
-                       dumpCast(fout, (CastInfo *) dobj);
+                       dumpCast(fout, (const CastInfo *) dobj);
                        break;
                case DO_TRANSFORM:
-                       dumpTransform(fout, (TransformInfo *) dobj);
+                       dumpTransform(fout, (const TransformInfo *) dobj);
                        break;
                case DO_SEQUENCE_SET:
-                       dumpSequenceData(fout, (TableDataInfo *) dobj);
+                       dumpSequenceData(fout, (const TableDataInfo *) dobj);
                        break;
                case DO_TABLE_DATA:
-                       dumpTableData(fout, (TableDataInfo *) dobj);
+                       dumpTableData(fout, (const TableDataInfo *) dobj);
                        break;
                case DO_DUMMY_TYPE:
                        /* table rowtypes and array types are never dumped 
separately */
                        break;
                case DO_TSPARSER:
-                       dumpTSParser(fout, (TSParserInfo *) dobj);
+                       dumpTSParser(fout, (const TSParserInfo *) dobj);
                        break;
                case DO_TSDICT:
-                       dumpTSDictionary(fout, (TSDictInfo *) dobj);
+                       dumpTSDictionary(fout, (const TSDictInfo *) dobj);
                        break;
                case DO_TSTEMPLATE:
-                       dumpTSTemplate(fout, (TSTemplateInfo *) dobj);
+                       dumpTSTemplate(fout, (const TSTemplateInfo *) dobj);
                        break;
                case DO_TSCONFIG:
-                       dumpTSConfig(fout, (TSConfigInfo *) dobj);
+                       dumpTSConfig(fout, (const TSConfigInfo *) dobj);
                        break;
                case DO_FDW:
-                       dumpForeignDataWrapper(fout, (FdwInfo *) dobj);
+                       dumpForeignDataWrapper(fout, (const FdwInfo *) dobj);
                        break;
                case DO_FOREIGN_SERVER:
-                       dumpForeignServer(fout, (ForeignServerInfo *) dobj);
+                       dumpForeignServer(fout, (const ForeignServerInfo *) 
dobj);
                        break;
                case DO_DEFAULT_ACL:
-                       dumpDefaultACL(fout, (DefaultACLInfo *) dobj);
+                       dumpDefaultACL(fout, (const DefaultACLInfo *) dobj);
                        break;
                case DO_BLOB:
-                       dumpBlob(fout, (BlobInfo *) dobj);
+                       dumpBlob(fout, (const BlobInfo *) dobj);
                        break;
                case DO_BLOB_DATA:
                        if (dobj->dump & DUMP_COMPONENT_DATA)
@@ -10285,16 +10285,16 @@ dumpDumpableObject(Archive *fout, DumpableObject 
*dobj)
                        }
                        break;
                case DO_POLICY:
-                       dumpPolicy(fout, (PolicyInfo *) dobj);
+                       dumpPolicy(fout, (const PolicyInfo *) dobj);
                        break;
                case DO_PUBLICATION:
-                       dumpPublication(fout, (PublicationInfo *) dobj);
+                       dumpPublication(fout, (const PublicationInfo *) dobj);
                        break;
                case DO_PUBLICATION_REL:
-                       dumpPublicationTable(fout, (PublicationRelInfo *) dobj);
+                       dumpPublicationTable(fout, (const PublicationRelInfo *) 
dobj);
                        break;
                case DO_SUBSCRIPTION:
-                       dumpSubscription(fout, (SubscriptionInfo *) dobj);
+                       dumpSubscription(fout, (const SubscriptionInfo *) dobj);
                        break;
                case DO_PRE_DATA_BOUNDARY:
                case DO_POST_DATA_BOUNDARY:
@@ -10308,7 +10308,7 @@ dumpDumpableObject(Archive *fout, DumpableObject *dobj)
  *       writes out to fout the queries to recreate a user-defined namespace
  */
 static void
-dumpNamespace(Archive *fout, NamespaceInfo *nspinfo)
+dumpNamespace(Archive *fout, const NamespaceInfo *nspinfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer q;
@@ -10369,7 +10369,7 @@ dumpNamespace(Archive *fout, NamespaceInfo *nspinfo)
  *       writes out to fout the queries to recreate an extension
  */
 static void
-dumpExtension(Archive *fout, ExtensionInfo *extinfo)
+dumpExtension(Archive *fout, const ExtensionInfo *extinfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer q;
@@ -10497,7 +10497,7 @@ dumpExtension(Archive *fout, ExtensionInfo *extinfo)
  *       writes out to fout the queries to recreate a user-defined type
  */
 static void
-dumpType(Archive *fout, TypeInfo *tyinfo)
+dumpType(Archive *fout, const TypeInfo *tyinfo)
 {
        DumpOptions *dopt = fout->dopt;
 
@@ -10528,7 +10528,7 @@ dumpType(Archive *fout, TypeInfo *tyinfo)
  *       writes out to fout the queries to recreate a user-defined enum type
  */
 static void
-dumpEnumType(Archive *fout, TypeInfo *tyinfo)
+dumpEnumType(Archive *fout, const TypeInfo *tyinfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer q = createPQExpBuffer();
@@ -10656,7 +10656,7 @@ dumpEnumType(Archive *fout, TypeInfo *tyinfo)
  *       writes out to fout the queries to recreate a user-defined range type
  */
 static void
-dumpRangeType(Archive *fout, TypeInfo *tyinfo)
+dumpRangeType(Archive *fout, const TypeInfo *tyinfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer q = createPQExpBuffer();
@@ -10801,7 +10801,7 @@ dumpRangeType(Archive *fout, TypeInfo *tyinfo)
  * depending on it.
  */
 static void
-dumpUndefinedType(Archive *fout, TypeInfo *tyinfo)
+dumpUndefinedType(Archive *fout, const TypeInfo *tyinfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer q = createPQExpBuffer();
@@ -10866,7 +10866,7 @@ dumpUndefinedType(Archive *fout, TypeInfo *tyinfo)
  *       writes out to fout the queries to recreate a user-defined base type
  */
 static void
-dumpBaseType(Archive *fout, TypeInfo *tyinfo)
+dumpBaseType(Archive *fout, const TypeInfo *tyinfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer q = createPQExpBuffer();
@@ -11132,7 +11132,7 @@ dumpBaseType(Archive *fout, TypeInfo *tyinfo)
  *       writes out to fout the queries to recreate a user-defined domain
  */
 static void
-dumpDomain(Archive *fout, TypeInfo *tyinfo)
+dumpDomain(Archive *fout, const TypeInfo *tyinfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer q = createPQExpBuffer();
@@ -11307,7 +11307,7 @@ dumpDomain(Archive *fout, TypeInfo *tyinfo)
  *       composite type
  */
 static void
-dumpCompositeType(Archive *fout, TypeInfo *tyinfo)
+dumpCompositeType(Archive *fout, const TypeInfo *tyinfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer q = createPQExpBuffer();
@@ -11517,7 +11517,7 @@ dumpCompositeType(Archive *fout, TypeInfo *tyinfo)
  *       a user-defined stand-alone composite type
  */
 static void
-dumpCompositeTypeColComments(Archive *fout, TypeInfo *tyinfo)
+dumpCompositeTypeColComments(Archive *fout, const TypeInfo *tyinfo)
 {
        CommentItem *comments;
        int                     ncomments;
@@ -11632,7 +11632,7 @@ dumpCompositeTypeColComments(Archive *fout, TypeInfo 
*tyinfo)
  * We dump a shell definition in advance of the I/O functions for the type.
  */
 static void
-dumpShellType(Archive *fout, ShellTypeInfo *stinfo)
+dumpShellType(Archive *fout, const ShellTypeInfo *stinfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer q;
@@ -11678,7 +11678,7 @@ dumpShellType(Archive *fout, ShellTypeInfo *stinfo)
  *               procedural language
  */
 static void
-dumpProcLang(Archive *fout, ProcLangInfo *plang)
+dumpProcLang(Archive *fout, const ProcLangInfo *plang)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer defqry;
@@ -11811,7 +11811,7 @@ dumpProcLang(Archive *fout, ProcLangInfo *plang)
  * does not special-case zero-argument aggregates.
  */
 static char *
-format_function_arguments(FuncInfo *finfo, char *funcargs, bool is_agg)
+format_function_arguments(const FuncInfo *finfo, const char *funcargs, bool 
is_agg)
 {
        PQExpBufferData fn;
 
@@ -11837,7 +11837,7 @@ format_function_arguments(FuncInfo *finfo, char 
*funcargs, bool is_agg)
  */
 static char *
 format_function_arguments_old(Archive *fout,
-                                                         FuncInfo *finfo, int 
nallargs,
+                                                         const FuncInfo 
*finfo, int nallargs,
                                                          char **allargtypes,
                                                          char **argmodes,
                                                          char **argnames)
@@ -11906,7 +11906,7 @@ format_function_arguments_old(Archive *fout,
  * This is appropriate for use in TOC tags, but not in SQL commands.
  */
 static char *
-format_function_signature(Archive *fout, FuncInfo *finfo, bool honor_quotes)
+format_function_signature(Archive *fout, const FuncInfo *finfo, bool 
honor_quotes)
 {
        PQExpBufferData fn;
        int                     j;
@@ -11938,7 +11938,7 @@ format_function_signature(Archive *fout, FuncInfo 
*finfo, bool honor_quotes)
  *       dump out one function
  */
 static void
-dumpFunc(Archive *fout, FuncInfo *finfo)
+dumpFunc(Archive *fout, const FuncInfo *finfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer query;
@@ -12444,7 +12444,7 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
  * Dump a user-defined cast
  */
 static void
-dumpCast(Archive *fout, CastInfo *cast)
+dumpCast(Archive *fout, const CastInfo *cast)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer defqry;
@@ -12552,7 +12552,7 @@ dumpCast(Archive *fout, CastInfo *cast)
  * Dump a transform
  */
 static void
-dumpTransform(Archive *fout, TransformInfo *transform)
+dumpTransform(Archive *fout, const TransformInfo *transform)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer defqry;
@@ -12682,7 +12682,7 @@ dumpTransform(Archive *fout, TransformInfo *transform)
  *       write out a single operator definition
  */
 static void
-dumpOpr(Archive *fout, OprInfo *oprinfo)
+dumpOpr(Archive *fout, const OprInfo *oprinfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer query;
@@ -13000,7 +13000,7 @@ convertTSFunction(Archive *fout, Oid funcOid)
  *       write out a single access method definition
  */
 static void
-dumpAccessMethod(Archive *fout, AccessMethodInfo *aminfo)
+dumpAccessMethod(Archive *fout, const AccessMethodInfo *aminfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer q;
@@ -13068,7 +13068,7 @@ dumpAccessMethod(Archive *fout, AccessMethodInfo 
*aminfo)
  *       write out a single operator class definition
  */
 static void
-dumpOpclass(Archive *fout, OpclassInfo *opcinfo)
+dumpOpclass(Archive *fout, const OpclassInfo *opcinfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer query;
@@ -13440,7 +13440,7 @@ dumpOpclass(Archive *fout, OpclassInfo *opcinfo)
  * specific opclass within the opfamily.
  */
 static void
-dumpOpfamily(Archive *fout, OpfamilyInfo *opfinfo)
+dumpOpfamily(Archive *fout, const OpfamilyInfo *opfinfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer query;
@@ -13703,7 +13703,7 @@ dumpOpfamily(Archive *fout, OpfamilyInfo *opfinfo)
  *       write out a single collation definition
  */
 static void
-dumpCollation(Archive *fout, CollInfo *collinfo)
+dumpCollation(Archive *fout, const CollInfo *collinfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer query;
@@ -13834,7 +13834,7 @@ dumpCollation(Archive *fout, CollInfo *collinfo)
  *       write out a single conversion definition
  */
 static void
-dumpConversion(Archive *fout, ConvInfo *convinfo)
+dumpConversion(Archive *fout, const ConvInfo *convinfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer query;
@@ -13930,7 +13930,7 @@ dumpConversion(Archive *fout, ConvInfo *convinfo)
  * is never qualified.
  */
 static char *
-format_aggregate_signature(AggInfo *agginfo, Archive *fout, bool honor_quotes)
+format_aggregate_signature(const AggInfo *agginfo, Archive *fout, bool 
honor_quotes)
 {
        PQExpBufferData buf;
        int                     j;
@@ -13968,7 +13968,7 @@ format_aggregate_signature(AggInfo *agginfo, Archive 
*fout, bool honor_quotes)
  *       write out a single aggregate definition
  */
 static void
-dumpAgg(Archive *fout, AggInfo *agginfo)
+dumpAgg(Archive *fout, const AggInfo *agginfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer query;
@@ -14332,7 +14332,7 @@ dumpAgg(Archive *fout, AggInfo *agginfo)
  *       write out a single text search parser
  */
 static void
-dumpTSParser(Archive *fout, TSParserInfo *prsinfo)
+dumpTSParser(Archive *fout, const TSParserInfo *prsinfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer q;
@@ -14396,7 +14396,7 @@ dumpTSParser(Archive *fout, TSParserInfo *prsinfo)
  *       write out a single text search dictionary
  */
 static void
-dumpTSDictionary(Archive *fout, TSDictInfo *dictinfo)
+dumpTSDictionary(Archive *fout, const TSDictInfo *dictinfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer q;
@@ -14476,7 +14476,7 @@ dumpTSDictionary(Archive *fout, TSDictInfo *dictinfo)
  *       write out a single text search template
  */
 static void
-dumpTSTemplate(Archive *fout, TSTemplateInfo *tmplinfo)
+dumpTSTemplate(Archive *fout, const TSTemplateInfo *tmplinfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer q;
@@ -14534,7 +14534,7 @@ dumpTSTemplate(Archive *fout, TSTemplateInfo *tmplinfo)
  *       write out a single text search configuration
  */
 static void
-dumpTSConfig(Archive *fout, TSConfigInfo *cfginfo)
+dumpTSConfig(Archive *fout, const TSConfigInfo *cfginfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer q;
@@ -14654,7 +14654,7 @@ dumpTSConfig(Archive *fout, TSConfigInfo *cfginfo)
  *       write out a single foreign-data wrapper definition
  */
 static void
-dumpForeignDataWrapper(Archive *fout, FdwInfo *fdwinfo)
+dumpForeignDataWrapper(Archive *fout, const FdwInfo *fdwinfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer q;
@@ -14726,7 +14726,7 @@ dumpForeignDataWrapper(Archive *fout, FdwInfo *fdwinfo)
  *       write out a foreign server definition
  */
 static void
-dumpForeignServer(Archive *fout, ForeignServerInfo *srvinfo)
+dumpForeignServer(Archive *fout, const ForeignServerInfo *srvinfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer q;
@@ -14920,7 +14920,7 @@ dumpUserMappings(Archive *fout,
  * Write out default privileges information
  */
 static void
-dumpDefaultACL(Archive *fout, DefaultACLInfo *daclinfo)
+dumpDefaultACL(Archive *fout, const DefaultACLInfo *daclinfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer q;
@@ -15198,7 +15198,7 @@ dumpSecLabel(Archive *fout, const char *type, const 
char *name,
  * and its columns.
  */
 static void
-dumpTableSecLabel(Archive *fout, TableInfo *tbinfo, const char *reltypename)
+dumpTableSecLabel(Archive *fout, const TableInfo *tbinfo, const char 
*reltypename)
 {
        DumpOptions *dopt = fout->dopt;
        SecLabelItem *labels;
@@ -15422,7 +15422,7 @@ collectSecLabels(Archive *fout, SecLabelItem **items)
  *       write out to fout the declarations (not data) of a user-defined table
  */
 static void
-dumpTable(Archive *fout, TableInfo *tbinfo)
+dumpTable(Archive *fout, const TableInfo *tbinfo)
 {
        DumpOptions *dopt = fout->dopt;
        DumpId          tableAclDumpId = InvalidDumpId;
@@ -15562,7 +15562,7 @@ dumpTable(Archive *fout, TableInfo *tbinfo)
  * This returns a new buffer which must be freed by the caller.
  */
 static PQExpBuffer
-createViewAsClause(Archive *fout, TableInfo *tbinfo)
+createViewAsClause(Archive *fout, const TableInfo *tbinfo)
 {
        PQExpBuffer query = createPQExpBuffer();
        PQExpBuffer result = createPQExpBuffer();
@@ -15611,7 +15611,7 @@ createViewAsClause(Archive *fout, TableInfo *tbinfo)
  * This returns a new buffer which must be freed by the caller.
  */
 static PQExpBuffer
-createDummyViewAsClause(Archive *fout, TableInfo *tbinfo)
+createDummyViewAsClause(Archive *fout, const TableInfo *tbinfo)
 {
        PQExpBuffer result = createPQExpBuffer();
        int                     j;
@@ -15651,7 +15651,7 @@ createDummyViewAsClause(Archive *fout, TableInfo 
*tbinfo)
  *       write the declaration (not data) of one user-defined table or view
  */
 static void
-dumpTableSchema(Archive *fout, TableInfo *tbinfo)
+dumpTableSchema(Archive *fout, const TableInfo *tbinfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer q = createPQExpBuffer();
@@ -16387,7 +16387,7 @@ dumpTableSchema(Archive *fout, TableInfo *tbinfo)
  * rather than emitting it within the child partition's ArchiveEntry.
  */
 static void
-dumpTableAttach(Archive *fout, TableAttachInfo *attachinfo)
+dumpTableAttach(Archive *fout, const TableAttachInfo *attachinfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer q;
@@ -16431,7 +16431,7 @@ dumpTableAttach(Archive *fout, TableAttachInfo 
*attachinfo)
  * dumpAttrDef --- dump an attribute's default-value declaration
  */
 static void
-dumpAttrDef(Archive *fout, AttrDefInfo *adinfo)
+dumpAttrDef(Archive *fout, const AttrDefInfo *adinfo)
 {
        DumpOptions *dopt = fout->dopt;
        TableInfo  *tbinfo = adinfo->adtable;
@@ -16492,7 +16492,7 @@ dumpAttrDef(Archive *fout, AttrDefInfo *adinfo)
  * We also do a little bit of bounds checking for safety's sake.
  */
 static const char *
-getAttrName(int attrnum, TableInfo *tblInfo)
+getAttrName(int attrnum, const TableInfo *tblInfo)
 {
        if (attrnum > 0 && attrnum <= tblInfo->numatts)
                return tblInfo->attnames[attrnum - 1];
@@ -16521,7 +16521,7 @@ getAttrName(int attrnum, TableInfo *tblInfo)
  *       write out to fout a user-defined index
  */
 static void
-dumpIndex(Archive *fout, IndxInfo *indxinfo)
+dumpIndex(Archive *fout, const IndxInfo *indxinfo)
 {
        DumpOptions *dopt = fout->dopt;
        TableInfo  *tbinfo = indxinfo->indextable;
@@ -16683,7 +16683,7 @@ dumpIndex(Archive *fout, IndxInfo *indxinfo)
  *       write out to fout a partitioned-index attachment clause
  */
 static void
-dumpIndexAttach(Archive *fout, IndexAttachInfo *attachinfo)
+dumpIndexAttach(Archive *fout, const IndexAttachInfo *attachinfo)
 {
        if (fout->dopt->dataOnly)
                return;
@@ -16721,7 +16721,7 @@ dumpIndexAttach(Archive *fout, IndexAttachInfo 
*attachinfo)
  *       write out to fout an extended statistics object
  */
 static void
-dumpStatisticsExt(Archive *fout, StatsExtInfo *statsextinfo)
+dumpStatisticsExt(Archive *fout, const StatsExtInfo *statsextinfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer q;
@@ -16799,7 +16799,7 @@ dumpStatisticsExt(Archive *fout, StatsExtInfo 
*statsextinfo)
  *       write out to fout a user-defined constraint
  */
 static void
-dumpConstraint(Archive *fout, ConstraintInfo *coninfo)
+dumpConstraint(Archive *fout, const ConstraintInfo *coninfo)
 {
        DumpOptions *dopt = fout->dopt;
        TableInfo  *tbinfo = coninfo->contable;
@@ -17076,7 +17076,7 @@ dumpConstraint(Archive *fout, ConstraintInfo *coninfo)
  * or as a separate ALTER command.
  */
 static void
-dumpTableConstraintComment(Archive *fout, ConstraintInfo *coninfo)
+dumpTableConstraintComment(Archive *fout, const ConstraintInfo *coninfo)
 {
        TableInfo  *tbinfo = coninfo->contable;
        PQExpBuffer conprefix = createPQExpBuffer();
@@ -17126,7 +17126,7 @@ findLastBuiltinOid_V71(Archive *fout)
  *       write the declaration (not data) of one user-defined sequence
  */
 static void
-dumpSequence(Archive *fout, TableInfo *tbinfo)
+dumpSequence(Archive *fout, const TableInfo *tbinfo)
 {
        DumpOptions *dopt = fout->dopt;
        PGresult   *res;
@@ -17393,7 +17393,7 @@ dumpSequence(Archive *fout, TableInfo *tbinfo)
  *       write the data of one user-defined sequence
  */
 static void
-dumpSequenceData(Archive *fout, TableDataInfo *tdinfo)
+dumpSequenceData(Archive *fout, const TableDataInfo *tdinfo)
 {
        TableInfo  *tbinfo = tdinfo->tdtable;
        PGresult   *res;
@@ -17446,7 +17446,7 @@ dumpSequenceData(Archive *fout, TableDataInfo *tdinfo)
  *       write the declaration of one user-defined table trigger
  */
 static void
-dumpTrigger(Archive *fout, TriggerInfo *tginfo)
+dumpTrigger(Archive *fout, const TriggerInfo *tginfo)
 {
        DumpOptions *dopt = fout->dopt;
        TableInfo  *tbinfo = tginfo->tgtable;
@@ -17660,7 +17660,7 @@ dumpTrigger(Archive *fout, TriggerInfo *tginfo)
  *       write the declaration of one user-defined event trigger
  */
 static void
-dumpEventTrigger(Archive *fout, EventTriggerInfo *evtinfo)
+dumpEventTrigger(Archive *fout, const EventTriggerInfo *evtinfo)
 {
        DumpOptions *dopt = fout->dopt;
        PQExpBuffer query;
@@ -17745,7 +17745,7 @@ dumpEventTrigger(Archive *fout, EventTriggerInfo 
*evtinfo)
  *             Dump a rule
  */
 static void
-dumpRule(Archive *fout, RuleInfo *rinfo)
+dumpRule(Archive *fout, const RuleInfo *rinfo)
 {
        DumpOptions *dopt = fout->dopt;
        TableInfo  *tbinfo = rinfo->ruletable;
@@ -18528,7 +18528,7 @@ BuildArchiveDependencies(Archive *fout)
 
 /* Recursive search subroutine for BuildArchiveDependencies */
 static void
-findDumpableDependencies(ArchiveHandle *AH, DumpableObject *dobj,
+findDumpableDependencies(ArchiveHandle *AH, const DumpableObject *dobj,
                                                 DumpId **dependencies, int 
*nDeps, int *allocDeps)
 {
        int                     i;
@@ -18665,7 +18665,7 @@ nonemptyReloptions(const char *reloptions)
  * cluster, during a binary upgrade.
  */
 static void
-appendIndexCollationVersion(PQExpBuffer buffer, IndxInfo *indxinfo, int enc,
+appendIndexCollationVersion(PQExpBuffer buffer, const IndxInfo *indxinfo, int 
enc,
                                                        bool coll_unknown, 
Archive *fout)
 {
        char       *inddependcollnames = indxinfo->inddependcollnames;
diff --git a/src/bin/pg_dump/pg_dump.h b/src/bin/pg_dump/pg_dump.h
index 1290f9659b..0a2213fb06 100644
--- a/src/bin/pg_dump/pg_dump.h
+++ b/src/bin/pg_dump/pg_dump.h
@@ -712,7 +712,7 @@ extern ProcLangInfo *getProcLangs(Archive *fout, int 
*numProcLangs);
 extern CastInfo *getCasts(Archive *fout, int *numCasts);
 extern TransformInfo *getTransforms(Archive *fout, int *numTransforms);
 extern void getTableAttrs(Archive *fout, TableInfo *tbinfo, int numTables);
-extern bool shouldPrintColumn(DumpOptions *dopt, TableInfo *tbinfo, int colno);
+extern bool shouldPrintColumn(const DumpOptions *dopt, const TableInfo 
*tbinfo, int colno);
 extern TSParserInfo *getTSParsers(Archive *fout, int *numTSParsers);
 extern TSDictInfo *getTSDictionaries(Archive *fout, int *numTSDicts);
 extern TSTemplateInfo *getTSTemplates(Archive *fout, int *numTSTemplates);
-- 
2.30.0

Reply via email to