pgsql: Refactor code for restoring files via shell commands

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Refactor code for restoring files via shell commands
Date: 2023-01-18 02:17:19
Message-ID: E1pHy0t-004DV6-I3@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Refactor code for restoring files via shell commands

Presently, restore_command uses a different code path than
archive_cleanup_command and recovery_end_command. These code paths
are similar and can be easily combined, as long as it is possible to
identify if a command should:
- Issue a FATAL on signal.
- Exit immediately on SIGTERM.

While on it, this removes src/common/archive.c and its associated
header. Since the introduction of c96de2c, BuildRestoreCommand() has
become a simple wrapper of replace_percent_placeholders() able to call
make_native_path(). This simplifies shell_restore.c as long as
RestoreArchivedFile() includes a call to make_native_path().

Author: Nathan Bossart
Reviewed-by: Andres Freund, Michael Paquier
Discussion: https://postgr.es/m/20221227192449.GA3672473@nathanxps13

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/14bdb3f13de16523609d838b725540af5e23ddd3

Modified Files
--------------
src/backend/access/transam/shell_restore.c | 98 ++++++++++++++----------------
src/backend/access/transam/xlogarchive.c | 1 -
src/common/Makefile | 1 -
src/common/archive.c | 60 ------------------
src/common/meson.build | 1 -
src/fe_utils/archive.c | 11 +++-
src/include/common/archive.h | 21 -------
src/tools/msvc/Mkvcbuild.pm | 2 +-
8 files changed, 56 insertions(+), 139 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Amit Kapila 2023-01-18 03:44:26 pgsql: Display the leader apply worker's PID for parallel apply workers
Previous Message Michael Paquier 2023-01-18 00:05:28 pgsql: Constify the arguments of copydir.h functions