Hi,
Alvaro Herrera <[email protected]> writes:
>> Same for 9.2, attached. master needs yet another patch because of the
>> recent headers reorg, it seems, that's for another day though.
>
> No, just remove the RELKIND_UNCATALOGUED case in that switch.
Oh. As in the attached? :)
Regards,
--
Dimitri Fontaine
http://2ndQuadrant.fr PostgreSQL : Expertise, Formation et Support
*** a/src/bin/pg_dump/pg_dump.c
--- b/src/bin/pg_dump/pg_dump.c
***************
*** 191,197 **** static void dumpEventTrigger(Archive *fout, EventTriggerInfo *evtinfo);
static void dumpTable(Archive *fout, TableInfo *tbinfo);
static void dumpTableSchema(Archive *fout, TableInfo *tbinfo);
static void dumpAttrDef(Archive *fout, AttrDefInfo *adinfo);
! static void dumpSequence(Archive *fout, TableInfo *tbinfo);
static void dumpIndex(Archive *fout, IndxInfo *indxinfo);
static void dumpConstraint(Archive *fout, ConstraintInfo *coninfo);
static void dumpTableConstraintComment(Archive *fout, ConstraintInfo *coninfo);
--- 191,197 ----
static void dumpTable(Archive *fout, TableInfo *tbinfo);
static void dumpTableSchema(Archive *fout, TableInfo *tbinfo);
static void dumpAttrDef(Archive *fout, AttrDefInfo *adinfo);
! static void dumpSequence(Archive *fout, TableInfo *tbinfo, bool extMember);
static void dumpIndex(Archive *fout, IndxInfo *indxinfo);
static void dumpConstraint(Archive *fout, ConstraintInfo *coninfo);
static void dumpTableConstraintComment(Archive *fout, ConstraintInfo *coninfo);
***************
*** 1568,1573 **** dumpTableData(Archive *fout, TableDataInfo *tdinfo)
--- 1568,1579 ----
DataDumperPtr dumpFn;
char *copyStmt;
+ if (tbinfo->relkind == RELKIND_SEQUENCE)
+ {
+ dumpSequence(fout, tbinfo, true);
+ return;
+ }
+
if (!dump_inserts)
{
/* Dump/restore using COPY */
***************
*** 1640,1648 **** makeTableDataInfo(TableInfo *tbinfo, bool oids)
/* Skip VIEWs (no data to dump) */
if (tbinfo->relkind == RELKIND_VIEW)
return;
- /* Skip SEQUENCEs (handled elsewhere) */
- if (tbinfo->relkind == RELKIND_SEQUENCE)
- return;
/* Skip FOREIGN TABLEs (no data to dump) */
if (tbinfo->relkind == RELKIND_FOREIGN_TABLE)
return;
--- 1646,1651 ----
***************
*** 12188,12194 **** dumpTable(Archive *fout, TableInfo *tbinfo)
char *namecopy;
if (tbinfo->relkind == RELKIND_SEQUENCE)
! dumpSequence(fout, tbinfo);
else if (!dataOnly)
dumpTableSchema(fout, tbinfo);
--- 12191,12197 ----
char *namecopy;
if (tbinfo->relkind == RELKIND_SEQUENCE)
! dumpSequence(fout, tbinfo, false);
else if (!dataOnly)
dumpTableSchema(fout, tbinfo);
***************
*** 13305,13311 **** findLastBuiltinOid_V70(Archive *fout)
}
static void
! dumpSequence(Archive *fout, TableInfo *tbinfo)
{
PGresult *res;
char *startv,
--- 13308,13314 ----
}
static void
! dumpSequence(Archive *fout, TableInfo *tbinfo, bool extMember)
{
PGresult *res;
char *startv,
***************
*** 13405,13411 **** dumpSequence(Archive *fout, TableInfo *tbinfo)
*
* Add a 'SETVAL(seq, last_val, iscalled)' as part of a "data" dump.
*/
! if (!dataOnly)
{
/*
* DROP must be fully qualified in case same name appears in
--- 13408,13414 ----
*
* Add a 'SETVAL(seq, last_val, iscalled)' as part of a "data" dump.
*/
! if (!extMember && !dataOnly)
{
/*
* DROP must be fully qualified in case same name appears in
***************
*** 13526,13532 **** dumpSequence(Archive *fout, TableInfo *tbinfo)
tbinfo->dobj.catId, 0, tbinfo->dobj.dumpId);
}
! if (!schemaOnly)
{
resetPQExpBuffer(query);
appendPQExpBuffer(query, "SELECT pg_catalog.setval(");
--- 13529,13535 ----
tbinfo->dobj.catId, 0, tbinfo->dobj.dumpId);
}
! if (extMember || !schemaOnly)
{
resetPQExpBuffer(query);
appendPQExpBuffer(query, "SELECT pg_catalog.setval(");
***************
*** 14102,14112 **** getExtensionMembership(Archive *fout, ExtensionInfo extinfo[],
* the --oids setting. This is because row filtering
* conditions aren't compatible with dumping OIDs.
*/
! makeTableDataInfo(configtbl, false);
! if (configtbl->dataObj != NULL)
! {
! if (strlen(extconditionarray[j]) > 0)
! configtbl->dataObj->filtercond = pg_strdup(extconditionarray[j]);
}
}
}
--- 14105,14130 ----
* the --oids setting. This is because row filtering
* conditions aren't compatible with dumping OIDs.
*/
! switch (configtbl->relkind)
! {
! case RELKIND_SEQUENCE:
! makeTableDataInfo(configtbl, false);
! break;
!
! case RELKIND_RELATION:
! case RELKIND_VIEW:
! makeTableDataInfo(configtbl, false);
! if (configtbl->dataObj != NULL)
! configtbl->dataObj->filtercond =
! pg_strdup(extconditionarray[j]);
! break;
!
! case RELKIND_INDEX:
! case RELKIND_TOASTVALUE:
! case RELKIND_COMPOSITE_TYPE:
! case RELKIND_FOREIGN_TABLE:
! /* not supported as an extension config dump target */
! break;
}
}
}
--
Sent via pgsql-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers