On 2024/11/02 20:43, Tatsuo Ishii wrote:
Hi,
I noticed an issue in the pgbench progress message where an extra
closing parenthesis )) appears, as shown below:
7000000 of 10000000 tuples (70%) of pgbench_accounts done (elapsed
19.75 s, remaining 8.46 s))
Yeah, annoying.
This occurs when running commands like pgbench -i -s100 and is caused
by leftover characters when using \r with fprintf. I made a patch to
address this by adding extra spaces before \r, which clears any
remaining characters. While effective, I recognize this solution may
not be the most sophisticated.
The patch works perfectly for the case that there is one extra brace
as shown in your example. However I think it will not work if there
are two or more extra braces.
Are you suggesting adding more space characters before the carriage return
in the progress reporting line, like this? Since the line includes both
elapsed and remaining times, its total length doesn’t change much.
I think adding five spaces before the carriage return should be enough.
Thoughts?
- chars = fprintf(stderr, INT64_FORMAT " of " INT64_FORMAT "
tuples (%d%%) of %s done (elapsed %.2f s, remaining %.2f s) %c",
+ chars = fprintf(stderr, INT64_FORMAT " of " INT64_FORMAT "
tuples (%d%%) of %s done (elapsed %.2f s, remaining %.2f s)%5s%c",
j, total,
(int) ((j * 100) /
total),
- table, elapsed_sec,
remaining_sec, eol);
+ table, elapsed_sec,
remaining_sec, "", eol);
Regards,
--
Fujii Masao
Advanced Computing Technology Center
Research and Development Headquarters
NTT DATA CORPORATION