diff options
author | Michael Paquier | 2023-01-18 02:15:48 +0000 |
---|---|---|
committer | Michael Paquier | 2023-01-18 02:15:48 +0000 |
commit | 14bdb3f13de16523609d838b725540af5e23ddd3 (patch) | |
tree | 3a646672f4cfbe58b76100914f31732844073f96 /src/common/archive.c | |
parent | 2f31f405e1fa561db27e8dc6f7f3cb3dbd8c0c4f (diff) |
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
Diffstat (limited to 'src/common/archive.c')
-rw-r--r-- | src/common/archive.c | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/src/common/archive.c b/src/common/archive.c deleted file mode 100644 index 641a58ee88..0000000000 --- a/src/common/archive.c +++ /dev/null @@ -1,60 +0,0 @@ -/*------------------------------------------------------------------------- - * - * archive.c - * Common WAL archive routines - * - * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group - * Portions Copyright (c) 1994, Regents of the University of California - * - * - * IDENTIFICATION - * src/common/archive.c - * - *------------------------------------------------------------------------- - */ - -#ifndef FRONTEND -#include "postgres.h" -#else -#include "postgres_fe.h" -#endif - -#include "common/archive.h" -#include "common/percentrepl.h" - -/* - * BuildRestoreCommand - * - * Builds a restore command to retrieve a file from WAL archives, replacing - * the supported aliases with values supplied by the caller as defined by - * the GUC parameter restore_command: xlogpath for %p, xlogfname for %f and - * lastRestartPointFname for %r. - * - * The result is a palloc'd string for the restore command built. The - * caller is responsible for freeing it. If any of the required arguments - * is NULL and that the corresponding alias is found in the command given - * by the caller, then an error is thrown. - */ -char * -BuildRestoreCommand(const char *restoreCommand, - const char *xlogpath, - const char *xlogfname, - const char *lastRestartPointFname) -{ - char *nativePath = NULL; - char *result; - - if (xlogpath) - { - nativePath = pstrdup(xlogpath); - make_native_path(nativePath); - } - - result = replace_percent_placeholders(restoreCommand, "restore_command", "frp", - xlogfname, lastRestartPointFname, nativePath); - - if (nativePath) - pfree(nativePath); - - return result; -} |