diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index 454225da43..3eb66d7744 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -3080,6 +3080,7 @@ dumpPolicy(Archive *fout, PolicyInfo *polinfo) PQExpBuffer query; PQExpBuffer delqry; const char *cmd; + char *tag; if (dopt->dataOnly) return; @@ -3147,8 +3148,10 @@ dumpPolicy(Archive *fout, PolicyInfo *polinfo) appendPQExpBuffer(delqry, "DROP POLICY %s", fmtId(polinfo->polname)); appendPQExpBuffer(delqry, " ON %s;\n", fmtId(tbinfo->dobj.name)); + tag = psprintf("%s %s", tbinfo->dobj.name, polinfo->dobj.name); + ArchiveEntry(fout, polinfo->dobj.catId, polinfo->dobj.dumpId, - polinfo->dobj.name, + tag, polinfo->dobj.namespace->dobj.name, NULL, tbinfo->rolname, false, @@ -3157,6 +3160,7 @@ dumpPolicy(Archive *fout, PolicyInfo *polinfo) NULL, 0, NULL, NULL); + free(tag); destroyPQExpBuffer(query); destroyPQExpBuffer(delqry); } @@ -14832,6 +14836,7 @@ dumpAttrDef(Archive *fout, AttrDefInfo *adinfo) int adnum = adinfo->adnum; PQExpBuffer q; PQExpBuffer delq; + char *tag; /* Skip if table definition not to be dumped */ if (!tbinfo->dobj.dump || dopt->dataOnly) @@ -14860,8 +14865,10 @@ dumpAttrDef(Archive *fout, AttrDefInfo *adinfo) appendPQExpBuffer(delq, "ALTER COLUMN %s DROP DEFAULT;\n", fmtId(tbinfo->attnames[adnum - 1])); + tag = psprintf("%s %s", tbinfo->dobj.name, tbinfo->attnames[adnum - 1]); + ArchiveEntry(fout, adinfo->dobj.catId, adinfo->dobj.dumpId, - tbinfo->attnames[adnum - 1], + tag, tbinfo->dobj.namespace->dobj.name, NULL, tbinfo->rolname, @@ -14870,6 +14877,7 @@ dumpAttrDef(Archive *fout, AttrDefInfo *adinfo) NULL, 0, NULL, NULL); + free(tag); destroyPQExpBuffer(q); destroyPQExpBuffer(delq); } @@ -15010,6 +15018,7 @@ dumpConstraint(Archive *fout, ConstraintInfo *coninfo) TableInfo *tbinfo = coninfo->contable; PQExpBuffer q; PQExpBuffer delq; + char *tag = NULL; /* Skip if not to be dumped */ if (!coninfo->dobj.dump || dopt->dataOnly) @@ -15103,8 +15112,10 @@ dumpConstraint(Archive *fout, ConstraintInfo *coninfo) appendPQExpBuffer(delq, "DROP CONSTRAINT %s;\n", fmtId(coninfo->dobj.name)); + tag = psprintf("%s %s", tbinfo->dobj.name, coninfo->dobj.name); + ArchiveEntry(fout, coninfo->dobj.catId, coninfo->dobj.dumpId, - coninfo->dobj.name, + tag, tbinfo->dobj.namespace->dobj.name, indxinfo->tablespace, tbinfo->rolname, false, @@ -15136,8 +15147,10 @@ dumpConstraint(Archive *fout, ConstraintInfo *coninfo) appendPQExpBuffer(delq, "DROP CONSTRAINT %s;\n", fmtId(coninfo->dobj.name)); + tag = psprintf("%s %s", tbinfo->dobj.name, coninfo->dobj.name); + ArchiveEntry(fout, coninfo->dobj.catId, coninfo->dobj.dumpId, - coninfo->dobj.name, + tag, tbinfo->dobj.namespace->dobj.name, NULL, tbinfo->rolname, false, @@ -15171,8 +15184,10 @@ dumpConstraint(Archive *fout, ConstraintInfo *coninfo) appendPQExpBuffer(delq, "DROP CONSTRAINT %s;\n", fmtId(coninfo->dobj.name)); + tag = psprintf("%s %s", tbinfo->dobj.name, coninfo->dobj.name); + ArchiveEntry(fout, coninfo->dobj.catId, coninfo->dobj.dumpId, - coninfo->dobj.name, + tag, tbinfo->dobj.namespace->dobj.name, NULL, tbinfo->rolname, false, @@ -15207,8 +15222,10 @@ dumpConstraint(Archive *fout, ConstraintInfo *coninfo) appendPQExpBuffer(delq, "DROP CONSTRAINT %s;\n", fmtId(coninfo->dobj.name)); + tag = psprintf("%s %s", tyinfo->dobj.name, coninfo->dobj.name); + ArchiveEntry(fout, coninfo->dobj.catId, coninfo->dobj.dumpId, - coninfo->dobj.name, + tag, tyinfo->dobj.namespace->dobj.name, NULL, tyinfo->rolname, false, @@ -15228,6 +15245,7 @@ dumpConstraint(Archive *fout, ConstraintInfo *coninfo) if (tbinfo && coninfo->separate) dumpTableConstraintComment(fout, coninfo); + free(tag); destroyPQExpBuffer(q); destroyPQExpBuffer(delq); } @@ -15581,6 +15599,7 @@ dumpTrigger(Archive *fout, TriggerInfo *tginfo) size_t lentgargs; const char *p; int findx; + char *tag; /* * we needn't check dobj.dump because TriggerInfo wouldn't have been @@ -15757,8 +15776,10 @@ dumpTrigger(Archive *fout, TriggerInfo *tginfo) appendPQExpBuffer(labelq, "ON %s", fmtId(tbinfo->dobj.name)); + tag = psprintf("%s %s", tbinfo->dobj.name, tginfo->dobj.name); + ArchiveEntry(fout, tginfo->dobj.catId, tginfo->dobj.dumpId, - tginfo->dobj.name, + tag, tbinfo->dobj.namespace->dobj.name, NULL, tbinfo->rolname, false, @@ -15771,6 +15792,7 @@ dumpTrigger(Archive *fout, TriggerInfo *tginfo) tbinfo->dobj.namespace->dobj.name, tbinfo->rolname, tginfo->dobj.catId, 0, tginfo->dobj.dumpId); + free(tag); destroyPQExpBuffer(query); destroyPQExpBuffer(delqry); destroyPQExpBuffer(labelq); @@ -15861,6 +15883,7 @@ dumpRule(Archive *fout, RuleInfo *rinfo) PQExpBuffer delcmd; PQExpBuffer labelq; PGresult *res; + char *tag; /* Skip if not to be dumped */ if (!rinfo->dobj.dump || dopt->dataOnly) @@ -15958,8 +15981,10 @@ dumpRule(Archive *fout, RuleInfo *rinfo) appendPQExpBuffer(labelq, " ON %s", fmtId(tbinfo->dobj.name)); + tag = psprintf("%s %s", tbinfo->dobj.name, rinfo->dobj.name); + ArchiveEntry(fout, rinfo->dobj.catId, rinfo->dobj.dumpId, - rinfo->dobj.name, + tag, tbinfo->dobj.namespace->dobj.name, NULL, tbinfo->rolname, false, @@ -15976,6 +16001,7 @@ dumpRule(Archive *fout, RuleInfo *rinfo) PQclear(res); + free(tag); destroyPQExpBuffer(query); destroyPQExpBuffer(cmd); destroyPQExpBuffer(delcmd);