From a2ac73e7be7adf2a9248d14322d3a5e055ea4fd0 Mon Sep 17 00:00:00 2001 From: Fujii Masao Date: Wed, 15 Apr 2020 11:15:12 +0900 Subject: [PATCH] Code review for backup manifest. This commit prevents pg_basebackup from receiving backup_manifest file when --no-manifest is specified. Previously, when pg_basebackup was writing a tarfile to stdout, it tried to receive backup_manifest file even when --no-manifest was specified, and reported an error. Also remove unused -m option from pg_basebackup. Also fix typo in BASE_BACKUP command documentation. Author: Fujii Masao Reviewed-by: Michael Paquier, Robert Haas Discussion: https://postgr.es/m/01e3ed3a-8729-5aaa-ca84-e60e3ca59db8@oss.nttdata.com --- doc/src/sgml/protocol.sgml | 10 +++++----- src/bin/pg_basebackup/pg_basebackup.c | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/src/sgml/protocol.sgml b/doc/src/sgml/protocol.sgml index c1b2457b1d..20d1fe0ad8 100644 --- a/doc/src/sgml/protocol.sgml +++ b/doc/src/sgml/protocol.sgml @@ -2578,19 +2578,19 @@ The commands accepted in replication mode are: - MANIFEST + MANIFEST manifest_option When this option is specified with a value of yes - or force-escape, a backup manifest is created + or force-encode, a backup manifest is created and sent along with the backup. The manifest is a list of every file present in the backup with the exception of any WAL files that may be included. It also stores the size, last modification time, and an optional checksum for each file. - A value of force-escape forces all filenames + A value of force-encode forces all filenames to be hex-encoded; otherwise, this type of encoding is performed only for files whose names are non-UTF8 octet sequences. - force-escape is intended primarily for testing + force-encode is intended primarily for testing purposes, to be sure that clients which read the backup manifest can handle this case. For compatibility with previous releases, the default is MANIFEST 'no'. @@ -2599,7 +2599,7 @@ The commands accepted in replication mode are: - MANIFEST_CHECKSUMS + MANIFEST_CHECKSUMS checksum_algorithm Specifies the algorithm that should be applied to each file included diff --git a/src/bin/pg_basebackup/pg_basebackup.c b/src/bin/pg_basebackup/pg_basebackup.c index de098b3558..65ca1b16f0 100644 --- a/src/bin/pg_basebackup/pg_basebackup.c +++ b/src/bin/pg_basebackup/pg_basebackup.c @@ -1211,7 +1211,7 @@ ReceiveTarFile(PGconn *conn, PGresult *res, int rownum) * we're writing a tarfile to stdout, we don't have that option, so * include it in the one tarfile we've got. */ - if (strcmp(basedir, "-") == 0) + if (strcmp(basedir, "-") == 0 && manifest) { char header[512]; PQExpBufferData buf; @@ -2271,7 +2271,7 @@ main(int argc, char **argv) atexit(cleanup_directories_atexit); - while ((c = getopt_long(argc, argv, "CD:F:r:RS:T:X:l:nNzZ:d:c:h:p:U:s:wWkvPm:", + while ((c = getopt_long(argc, argv, "CD:F:r:RS:T:X:l:nNzZ:d:c:h:p:U:s:wWkvP", long_options, &option_index)) != -1) { switch (c)