diff options
author | Fujii Masao <fujii@postgresql.org> | 2020-03-24 10:43:41 +0900 |
---|---|---|
committer | Fujii Masao <fujii@postgresql.org> | 2020-03-24 10:43:41 +0900 |
commit | 67e0adfb3f98f1e4a89a32b6f2e59774ce579146 (patch) | |
tree | 5f59fc56f61ac02867542cfa4a718c0a914e1fcb /src/backend/replication/basebackup.c | |
parent | 64fe6022790920ef6edee475bfa162a961f148d8 (diff) |
Report NULL as total backup size if it's not estimated.
Previously 0 was reported in pg_stat_progress_basebackup.total_backup
if the total backup size was not estimated. Per discussion, our consensus
is that NULL is better choise as the value in total_backup in that case.
So this commit makes pg_stat_progress_basebackup view report NULL
in total_backup column if the estimation is disabled.
Bump catversion.
Author: Fujii Masao
Reviewed-by: Amit Langote, Magnus Hagander, Alvaro Herrera
Discussion: https://postgr.es/m/CABUevExnhOD89zBDuPvfAAh243RzNpwCPEWNLtMYpKHMB8gbAQ@mail.gmail.com
Diffstat (limited to 'src/backend/replication/basebackup.c')
-rw-r--r-- | src/backend/replication/basebackup.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/backend/replication/basebackup.c b/src/backend/replication/basebackup.c index 806d013108d..a2e28b064cd 100644 --- a/src/backend/replication/basebackup.c +++ b/src/backend/replication/basebackup.c @@ -123,7 +123,10 @@ static long long int total_checksum_failures; /* Do not verify checksums. */ static bool noverify_checksums = false; -/* Total amount of backup data that will be streamed */ +/* + * Total amount of backup data that will be streamed. + * -1 means that the size is not estimated. + */ static int64 backup_total = 0; /* Amount of backup data already streamed */ @@ -258,6 +261,18 @@ perform_base_backup(basebackup_options *opt) backup_streamed = 0; pgstat_progress_start_command(PROGRESS_COMMAND_BASEBACKUP, InvalidOid); + /* + * If the estimation of the total backup size is disabled, make the + * backup_total column in the view return NULL by setting the parameter to + * -1. + */ + if (!opt->progress) + { + backup_total = -1; + pgstat_progress_update_param(PROGRESS_BASEBACKUP_BACKUP_TOTAL, + backup_total); + } + datadirpathlen = strlen(DataDir); backup_started_in_recovery = RecoveryInProgress(); @@ -1842,7 +1857,7 @@ update_basebackup_progress(int64 delta) * will always be wrong if WAL is included), but that's better than having * the done column be bigger than the total. */ - if (backup_total > 0 && backup_streamed > backup_total) + if (backup_total > -1 && backup_streamed > backup_total) { backup_total = backup_streamed; val[nparam++] = backup_total; |