Fix printing last progress report line in client programs.
Heikki Linnakangas <heikki.linnakangas@iki.fi>
Fix printing last progress report line in client programs. A number of client programs have a "--progress" option that when printing to a TTY, updates the current line by printing a '\r' and overwriting it. After the last line, '\n' needs to be printed to move the cursor to the next line. pg_basebackup and pgbench got this right, but pg_rewind and pg_checksums were slightly wrong. pg_rewind printed the newline to stdout instead of stderr, and pg_checksums printed the newline even when not printing to a TTY. Fix them, and also add a 'finished' argument to pg_basebackup's progress_report() function, to keep it consistent with the other programs. Backpatch to v12. pg_rewind's newline was broken with the logging changes in commit cc8d415117 in v12, and pg_checksums was introduced in v12. Discussion: https://www.postgresql.org/message-id/82b539e5-ae33-34b0-1aee-22b3379fd3eb@iki.fi
Files
| Path | Change | +/− |
|---|---|---|
| src/bin/pg_basebackup/pg_basebackup.c | modified | +20 −18 |
| src/bin/pg_checksums/pg_checksums.c | modified | +7 −7 |
| src/bin/pg_rewind/pg_rewind.c | modified | +13 −9 |
| src/bin/pg_rewind/pg_rewind.h | modified | +1 −1 |
Discussion
- Newline after --progress report 5 messages · 2020-08-14 → 2020-08-17