pgsql: In pg_dump,force reconnection after issuing ALTER DATABASE SET

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: In pg_dump,force reconnection after issuing ALTER DATABASE SET
Дата
Msg-id E1ee0v0-0001V1-P3@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
In pg_dump, force reconnection after issuing ALTER DATABASE SET command(s).

The folly of not doing this was exposed by the buildfarm: in some cases,
the GUC settings applied through ALTER DATABASE SET may be essential to
interpreting the reloaded data correctly.  Another argument why we can't
really get away with the scheme proposed in commit b3f840120 is that it
cannot work for parallel restore: even if the parent process manages to
hang onto the previous GUC state, worker processes would see the state
post-ALTER-DATABASE.  (Perhaps we could have dodged that bullet by
delaying DATABASE PROPERTIES restoration to the end of the run, but
that does nothing for the data semantics problem.)

This leaves us with no solution for the default_transaction_read_only issue
that commit 4bd371f6f intended to work around, other than "you gotta remove
such settings before dumping/upgrading".  However, in view of the fact that
parallel restore broke that hack years ago and no one has noticed, it's
fair to question how many people care.  I'm unexcited about adding a large
dollop of new complexity to handle that corner case.

This would be a one-liner fix, except it turns out that ReconnectToServer
tries to optimize away "redundant" reconnections.  While that may have been
valuable when coded, a quick survey of current callers shows that there are
no cases where that's actually useful, so just remove that check.  While at
it, remove the function's useless return value.

Discussion: https://postgr.es/m/12453.1516655001@sss.pgh.pa.us

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/160a4f62ee7b8a96984f8bef19c90488aa6c8045

Modified Files
--------------
src/bin/pg_dump/pg_backup_archiver.c |  9 +++++++--
src/bin/pg_dump/pg_backup_archiver.h |  2 +-
src/bin/pg_dump/pg_backup_db.c       | 15 ++-------------
src/bin/pg_dump/pg_dump.c            | 12 ++++++------
4 files changed, 16 insertions(+), 22 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: pgsql: doc: simplify intermediate certificate mention in libpq docs
Следующее
От: Robert Haas
Дата:
Сообщение: pgsql: Report an ERROR if a parallel worker fails to start properly.