pgsql: pg_dump: Lock all relations, not just plain tables

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: pg_dump: Lock all relations, not just plain tables
Date: 2020-10-27 17:32:44
Message-ID: E1kXSpw-0002wI-VT@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

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(at)alvh(dot)no-ip(dot)org>
Reviewed-by: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Reported-by: Wells Oliver <wells(dot)oliver(at)gmail(dot)com>
Discussion: https://postgr.es/m/20201021200659.GA32358@alvherre.pgsql

Branch
------
REL9_6_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/a575a1ab27ef8362f5e885b41092824929961288

Modified Files
--------------
src/bin/pg_dump/pg_backup.h | 2 ++
src/bin/pg_dump/pg_backup_db.c | 65 ++++++++++++++++++++++++++++++++++++++++++
src/bin/pg_dump/pg_backup_db.h | 2 ++
src/bin/pg_dump/pg_dump.c | 15 ++++++----
4 files changed, 79 insertions(+), 5 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Bruce Momjian 2020-10-27 18:00:59 pgsql: Makefile comment: remove reference to tools/thread/thread_test
Previous Message Peter Eisentraut 2020-10-27 17:11:09 pgsql: Add select_common_typmod()