]> granicus.if.org Git - postgresql/commit
Fix parallel restore of FKs to partitioned tables
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Thu, 17 Oct 2019 07:58:01 +0000 (09:58 +0200)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Thu, 17 Oct 2019 07:58:01 +0000 (09:58 +0200)
commit1752e351639dcc68ea289cf91428246ed316d9b2
treeab7b3f1c6555323057d8fa9b81529f3811e575c5
parent3c8c55dd5445370c5cad3ae04de02caba7be7073
Fix parallel restore of FKs to partitioned tables

When an FK constraint is created, it needs the index on the referenced
table to exist and be valid.  When doing parallel pg_restore and the
referenced table was partitioned, this condition can sometimes not be
met, because pg_dump didn't emit sufficient object dependencies to
ensure so; this means that parallel pg_restore would fail in certain
conditions.  Fix by having pg_dump make the FK constraint object
dependent on the partition attachment objects for the constraint's
referenced index.

This has been broken since f56f8f8da6af, so backpatch to Postgres 12.

Discussion: https://postgr.es/m/20191005224333.GA9738@alvherre.pgsql
src/bin/pg_dump/common.c
src/bin/pg_dump/pg_dump.c
src/bin/pg_dump/pg_dump.h
src/fe_utils/simple_list.c
src/include/fe_utils/simple_list.h