1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-11 10:01:57 +03:00

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
This commit is contained in:
Fujii Masao
2020-03-24 10:43:41 +09:00
parent 64fe602279
commit 67e0adfb3f
6 changed files with 25 additions and 7 deletions

View File

@ -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;