From 2b9c1b1c8397bf9f6613d0d134ad3fa19a9292b9 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Wed, 28 Aug 2019 16:46:54 +0200 Subject: [PATCH] Improve base backup protocol documentation Document that the tablespace sizes are in units of kilobytes. Make the pg_basebackup source code a bit clearer about this, too. --- doc/src/sgml/protocol.sgml | 4 ++-- src/bin/pg_basebackup/pg_basebackup.c | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/doc/src/sgml/protocol.sgml b/doc/src/sgml/protocol.sgml index b20f1690a7..f036d5f178 100644 --- a/doc/src/sgml/protocol.sgml +++ b/doc/src/sgml/protocol.sgml @@ -2615,8 +2615,8 @@ Streaming Replication Protocol size (int8) - The approximate size of the tablespace, if progress report has - been requested; otherwise it's null. + The approximate size of the tablespace, in kilobytes (1024 bytes), + if progress report has been requested; otherwise it's null. diff --git a/src/bin/pg_basebackup/pg_basebackup.c b/src/bin/pg_basebackup/pg_basebackup.c index 9207109ba3..498754eb32 100644 --- a/src/bin/pg_basebackup/pg_basebackup.c +++ b/src/bin/pg_basebackup/pg_basebackup.c @@ -115,7 +115,7 @@ static bool made_tablespace_dirs = false; static bool found_tablespace_dirs = false; /* Progress counters */ -static uint64 totalsize; +static uint64 totalsize_kb; static uint64 totaldone; static int tablespacecount; @@ -722,7 +722,7 @@ progress_report(int tablespacenum, const char *filename, bool force) return; /* Max once per second */ last_progress_report = now; - percent = totalsize ? (int) ((totaldone / 1024) * 100 / totalsize) : 0; + percent = totalsize_kb ? (int) ((totaldone / 1024) * 100 / totalsize_kb) : 0; /* * Avoid overflowing past 100% or the full size. This may make the total @@ -732,8 +732,8 @@ progress_report(int tablespacenum, const char *filename, bool force) */ if (percent > 100) percent = 100; - if (totaldone / 1024 > totalsize) - totalsize = totaldone / 1024; + if (totaldone / 1024 > totalsize_kb) + totalsize_kb = totaldone / 1024; /* * Separate step to keep platform-dependent format code out of @@ -742,7 +742,7 @@ progress_report(int tablespacenum, const char *filename, bool force) */ snprintf(totaldone_str, sizeof(totaldone_str), INT64_FORMAT, totaldone / 1024); - snprintf(totalsize_str, sizeof(totalsize_str), INT64_FORMAT, totalsize); + snprintf(totalsize_str, sizeof(totalsize_str), INT64_FORMAT, totalsize_kb); #define VERBOSE_FILENAME_LENGTH 35 if (verbose) @@ -1942,11 +1942,11 @@ BaseBackup(void) /* * Sum up the total size, for progress reporting */ - totalsize = totaldone = 0; + totalsize_kb = totaldone = 0; tablespacecount = PQntuples(res); for (i = 0; i < PQntuples(res); i++) { - totalsize += atol(PQgetvalue(res, i, 2)); + totalsize_kb += atol(PQgetvalue(res, i, 2)); /* * Verify tablespace directories are empty. Don't bother with the -- 2.22.0