On Thu, May 30, 2024 at 11:59 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> vaibhave postgres <postgresvaibhave(at)gmail(dot)com> writes:
> > 1. Create a database which has circular foreign key dependencies. (or use
> > the sql script which I have shared), restore the pre-data section first.
> > 2. pg_dump -Fc *--section=post-data*
> > 3. pg_restore --jobs > 1
>
> > pg_restore fails to record the dependency between the foreign keys and
> > tries to process them in parallel (see the attached log file for details)
>
> The reason this works in other cases is that pg_restore recognizes
> that two ADD CONSTRAINT steps shouldn't be run concurrently when they
> have dependencies on the same table(s). However, when you use
> --section=post-data to create the dump file, there are no entries for
> the tables.
>
> So this seems like a "don't do that" case. You could get the results
> you want by using --schema-only at dump time and then using
> --section=post-data as a pg_restore switch. (That'd also avoid the
> need to make two separate dump files.)
>
> Possibly we should add something to the docs about this.
>
> regards, tom lane
>