Commit b965f261 authored by Michael Paquier's avatar Michael Paquier

Do not dump identity sequences with excluded parent table

This commit prevents a crash of pg_dump caused by the exclusion of a
table which has identity columns, as the table would be correctly
excluded but not its identity sequence.  In order to fix that, identity
sequences are excluded if the parent table is defined as such.  Knowing
about such sequences has no meaning without their parent table anyway.

Reported-by: Andy Abelisto
Author: David Rowley
Reviewed-by: Peter Eisentraut, Michael Paquier
Discussion: https://postgr.es/m/153479393218.1316.8472285660264976457@wrigleys.postgresql.org
Backpatch-through: 10
parent 98abc738
...@@ -6636,8 +6636,20 @@ getOwnedSeqs(Archive *fout, TableInfo tblinfo[], int numTables) ...@@ -6636,8 +6636,20 @@ getOwnedSeqs(Archive *fout, TableInfo tblinfo[], int numTables)
seqinfo->owning_tab, seqinfo->dobj.catId.oid); seqinfo->owning_tab, seqinfo->dobj.catId.oid);
/* /*
* We need to dump the components that are being dumped for the table * Only dump identity sequences if we're going to dump the table that
* and any components which the sequence is explicitly marked with. * it belongs to.
*/
if (owning_tab->dobj.dump == DUMP_COMPONENT_NONE &&
seqinfo->is_identity_sequence)
{
seqinfo->dobj.dump = DUMP_COMPONENT_NONE;
continue;
}
/*
* Otherwise we need to dump the components that are being dumped for
* the table and any components which the sequence is explicitly
* marked with.
* *
* We can't simply use the set of components which are being dumped * We can't simply use the set of components which are being dumped
* for the table as the table might be in an extension (and only the * for the table as the table might be in an extension (and only the
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment