pg_dump: Lock all relations, not just plain tables
authorAlvaro Herrera <[email protected]>
Tue, 27 Oct 2020 17:31:37 +0000 (14:31 -0300)
committerAlvaro Herrera <[email protected]>
Tue, 27 Oct 2020 17:31:37 +0000 (14:31 -0300)
commitd9ed510ef64bb1962b2084f5b43aad03f1bd5cfa
tree8e9457ce02af24ebdb1a516ef3622f832321e296
parent61ae9d6bc763599a01424c7967d7b034ba7f792e
pg_dump: Lock all relations, not just plain tables

Now that LOCK TABLE can take any relation type, acquire lock on all
relations that are to be dumped.  This prevents schema changes or
deadlock errors that could cause a dump to fail after expending much
effort.  The server is tested to have the capability and the feature
disabled if it doesn't, so that a patched pg_dump doesn't fail when
connecting to an unpatched server.

Backpatch to 9.5.

Author: Álvaro Herrera <[email protected]>
Reviewed-by: Tom Lane <[email protected]>
Reported-by: Wells Oliver <[email protected]>
Discussion: https://postgr.es/m/20201021200659[email protected]
src/bin/pg_dump/pg_backup.h
src/bin/pg_dump/pg_backup_db.c
src/bin/pg_dump/pg_backup_db.h
src/bin/pg_dump/pg_dump.c