From a2ec95a397a1e8a075a56079c6928ba3b1d2b6ce Mon Sep 17 00:00:00 2001 From: Peter Eisentraut 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