Refactor code for restoring files via shell commands
authorMichael Paquier <michael@paquier.xyz>
Wed, 18 Jan 2023 02:15:48 +0000 (11:15 +0900)
committerMichael Paquier <michael@paquier.xyz>
Wed, 18 Jan 2023 02:15:48 +0000 (11:15 +0900)
commit14bdb3f13de16523609d838b725540af5e23ddd3
tree3a646672f4cfbe58b76100914f31732844073f96
parent2f31f405e1fa561db27e8dc6f7f3cb3dbd8c0c4f
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
src/backend/access/transam/shell_restore.c
src/backend/access/transam/xlogarchive.c
src/common/Makefile
src/common/archive.c [deleted file]
src/common/meson.build
src/fe_utils/archive.c
src/include/common/archive.h [deleted file]
src/tools/msvc/Mkvcbuild.pm