Re: Fix for Extra Parenthesis in pgbench progress message - Mailing list pgsql-hackers

From Fujii Masao
Subject Re: Fix for Extra Parenthesis in pgbench progress message
Date
Msg-id 0f7ac0fa-f26b-49dc-b9a0-d35c29ace3a5@oss.nttdata.com
Whole thread Raw
In response to Re: Fix for Extra Parenthesis in pgbench progress message  (Tatsuo Ishii <ishii@postgresql.org>)
Responses Re: Fix for Extra Parenthesis in pgbench progress message
List pgsql-hackers

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




pgsql-hackers by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: doc: pgevent.dll location
Next
From: Michael Christofides
Date:
Subject: Re: Proposals for EXPLAIN: rename ANALYZE to EXECUTE and extend VERBOSE