Re: Fix for Extra Parenthesis in pgbench progress message
Tatsuo Ishii <ishii@postgresql.org>
From: Tatsuo Ishii <ishii@postgresql.org>
To: masao.fujii@oss.nttdata.com
Cc: btogiwarayuushi@oss.nttdata.com, pgsql-hackers@postgresql.org
Date: 2024-11-08T02:47:13Z
Lists: pgsql-hackers
>> Maybe. But I am also worried about the case when we would want to
>> change the log line format in the future. We might introduce this kind
>> of bug again. By dynamically calculating the number of necessary
>> spaces, we don't need to think about the concern.
>
> +1
>
> + if (previous_chars != 0)
> + {
> + int n_spaces = chars - previous_chars;
> + fprintf(stderr, "%*s", n_spaces, "");
> + chars += n_spaces;
> + }
>
> Currently, this is added only when use_quiet is false, but shouldn’t
> it also apply when use_quiet is true?
Yes. The patch just showed my idea and I thought I needed to apply the
case when use_quiet is true. But the fix should be applied to after
"else if (use_quiet && (j % 100 == 0))" as shown in your patch.
> Also, what happens if chars is smaller than previous_chars?
My oversight. Better to check if chars is smaller than previous_chars.
> I’m unsure why chars needs to be incremented by n_spaces.
Yeah, it's not necessary.
> I’ve created an updated patch based on your idea―could you take a
> look?
Sure.
I think you need to adjust
fprintf(stderr, "%*c\r", chars - 1, ' '); /* Clear the current line */
to:
fprintf(stderr, "%*c\r", chars, ' '); /* Clear the current line */
since now chars does not consider the EOL char. By clearing chars - 1,
the closing parenthesis will be left on the screen.
Best reagards,
--
Tatsuo Ishii
SRA OSS K.K.
English: http://www.sraoss.co.jp/index_en/
Japanese:http://www.sraoss.co.jp
Commits
-
Fix pgbench performance issue induced by commit af35fe501.
- b6decfc1d22b 13.19 landed
- 5addea71c7c7 14.16 landed
- 499d1cf55d3d 15.11 landed
- fb056564ec5b 18.0 landed
- e35d396ec354 17.3 landed
- 21b815f92e82 16.7 landed
-
pgbench: Ensure previous progress message is fully cleared when updating.
- f1cb5e51f329 13.19 landed
- 0f13e1a78b14 14.16 landed
- 1e46f7351abc 15.11 landed
- 1cf646957135 16.7 landed
- adb103fcacdd 17.3 landed
- af35fe501af5 18.0 landed