Robert Haas <robertmh...@gmail.com> writes: > On Tue, Feb 14, 2023 at 2:21 PM Tom Lane <t...@sss.pgh.pa.us> wrote: >> This made me wonder if this could be a usable solution at all, but >> after thinking for awhile, I don't see how the claim about foreign key >> constraints is anything but FUD. pg_dump/pg_restore have sufficient >> dependency logic to prevent that from happening. I think we can just >> drop the "or perhaps ..." clause here, and tolerate the possible >> inefficiency as better than failing.
> Right, but isn't that dependency logic based around the fact that the > inserts are targeting the original partition? Like, suppose partition > A has a foreign key that is not present on partition B. A row that is > originally in partition B gets rerouted into partition A. It must now > satisfy the foreign key constraint when, previously, that was > unnecessary. Well, that's a user error not pg_dump's fault. Particularly so for hash partitioning, where there is no defensible reason to make the partitions semantically different. There could be a risk of a timing problem, namely that parallel pg_restore tries to check an FK constraint before all the relevant data has arrived. But in practice I don't believe that either. We load all the data in "data" phase and then create indexes and check FKs in "post-data" phase, and I do not believe that parallel restore weakens that separation (because it's enforced by a post-data boundary object in the dependencies). regards, tom lane