Skip to content

Commit 4ed59e0

Browse files
committed
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
1 parent 561a5ab commit 4ed59e0

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

src/bin/pg_dump/pg_dump.c

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6627,8 +6627,20 @@ getOwnedSeqs(Archive *fout, TableInfo tblinfo[], int numTables)
66276627
seqinfo->owning_tab, seqinfo->dobj.catId.oid);
66286628

66296629
/*
6630-
* We need to dump the components that are being dumped for the table
6631-
* and any components which the sequence is explicitly marked with.
6630+
* Only dump identity sequences if we're going to dump the table that
6631+
* it belongs to.
6632+
*/
6633+
if (owning_tab->dobj.dump == DUMP_COMPONENT_NONE &&
6634+
seqinfo->is_identity_sequence)
6635+
{
6636+
seqinfo->dobj.dump = DUMP_COMPONENT_NONE;
6637+
continue;
6638+
}
6639+
6640+
/*
6641+
* Otherwise we need to dump the components that are being dumped for
6642+
* the table and any components which the sequence is explicitly
6643+
* marked with.
66326644
*
66336645
* We can't simply use the set of components which are being dumped
66346646
* for the table as the table might be in an extension (and only the

0 commit comments

Comments
 (0)