]> git.ipfire.org Git - thirdparty/postgresql.git/commit
pg_dump: Lock all relations, not just plain tables
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 27 Oct 2020 17:31:37 +0000 (14:31 -0300)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 27 Oct 2020 17:31:37 +0000 (14:31 -0300)
commit64fc3e03495162154797f7d01e871462b1f42979
treee76a35bbe7cc72a8570b299bfb300c5b079ce734
parent272bff6a35ef85b0226ac536c58ca24881c3c8d2
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 <alvherre@alvh.no-ip.org>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Reported-by: Wells Oliver <wells.oliver@gmail.com>
Discussion: https://postgr.es/m/20201021200659.GA32358@alvherre.pgsql
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