aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bin/pg_basebackup/pg_basebackup.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/bin/pg_basebackup/pg_basebackup.c b/src/bin/pg_basebackup/pg_basebackup.c
index d5934f2e2b5..13f2519d48f 100644
--- a/src/bin/pg_basebackup/pg_basebackup.c
+++ b/src/bin/pg_basebackup/pg_basebackup.c
@@ -207,8 +207,17 @@ progress_report(int tablespacenum, const char *filename)
char totaldone_str[32];
char totalsize_str[32];
+ /*
+ * Avoid overflowing past 100% or the full size. This may make the
+ * total size number change as we approach the end of the backup
+ * (the estimate will always be wrong if WAL is included), but
+ * that's better than having the done column be bigger than the
+ * total.
+ */
if (percent > 100)
percent = 100;
+ if (totaldone / 1024 > totalsize)
+ totalsize = totaldone / 1024;
/*
* Separate step to keep platform-dependent format code out of translatable