pg_checksums: Fix progress reporting.
authorFujii Masao <fujii@postgresql.org>
Fri, 2 Apr 2021 15:07:00 +0000 (00:07 +0900)
committerFujii Masao <fujii@postgresql.org>
Fri, 2 Apr 2021 15:07:49 +0000 (00:07 +0900)
commit104164361cb18d7c36d068e1ddd2453b0e4dc1bb
treee316877bfd5e9de06b087ca389aa6f5249328e54
parentf8c2d491234f4e9e2e7c183109250cc7c8bfd148
pg_checksums: Fix progress reporting.

pg_checksums uses two counters, total size and current size,
to calculate the progress. Previously the progress that
pg_checksums reported could not reach 100% at the end.
The cause of this issue was that the sizes of only pages excluding
new ones in each file were counted as the current size
while the size of each file is counted as the total size.
That is, the total size of all new pages could be reported
as the difference between the total size and current size.

This commit fixes this issue by making pg_checksums count
the sizes of all pages including new ones in each file as
the current size.

Back-patch to v12 where progress reporting was added to pg_checksums.

Reported-by: Shinya Kato
Author: Shinya Kato
Reviewed-by: Fujii Masao
Discussion: https://postgr.es/m/TYAPR01MB289656B1ACA0A5E7CAD07BE3C47A9@TYAPR01MB2896.jpnprd01.prod.outlook.com
src/bin/pg_checksums/pg_checksums.c