pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Nathan Bossart <nathandbossart@gmail.com>
Cc: Andres Freund <andres@anarazel.de>
Cc: Fujii Masao <masao.fujii@oss.nttdata.com>
Cc: Tatsuo Ishii <ishii@postgresql.org>
Cc: pgsql-release@lists.postgresql.org
Cc: pgsql-hackers@postgresql.org
Subject: Re: Fix for Extra Parenthesis in pgbench progress message
Date: Fri, 07 Feb 2025 13:10:04 -0500
Message-ID: <1457693.1738951804@sss.pgh.pa.us> (raw)
In-Reply-To: <Z6ZK0LBTInOt7VWE@nathan>
References: <85fe426d-248a-47f7-8784-22af811ee572@oss.nttdata.com>
	<20241108.114713.484828673471024549.ishii@postgresql.org>
	<95f1100e-e59b-41b7-a406-f865c2e69db7@oss.nttdata.com>
	<20241125.083155.1820744655877715597.ishii@postgresql.org>
	<ffc99be5-e418-40ee-91d6-62c3deb42918@oss.nttdata.com>
	<4k4drkh7bcmdezq6zbkhp25mnrzpswqi2o75d5uv2eeg3aq6q7@b7kqdmzzwzgb>
	<1456496.1738951118@sss.pgh.pa.us>
	<Z6ZK0LBTInOt7VWE@nathan>

Nathan Bossart <nathandbossart@gmail.com> writes:
> On Fri, Feb 07, 2025 at 12:58:38PM -0500, Tom Lane wrote:
>> Let me have a go at fixing it, and if it turns out to be harder
>> than I think, I'll revert it instead.

> Oops, I was already taking a look at this.  I figured it'd just be
> something like the following, although maybe there's a more elegant way.

Well, the stuff with prev_chars really ought to be skipped as well.
(Yeah, it's probably a no-op, but readers shouldn't have to figure
that out.)

My thought was that duplicating the logic isn't so bad, as attached.

			regards, tom lane

Attachments:

pgbench-fix.patch (text/x-diff, 1.7K) download diff --git a/src/bin/pgbench/pgbench.c b/src/bin/pgbench/pgbench.c index 40592e6260..f303bdeec8 100644 --- a/src/bin/pgbench/pgbench.c +++ b/src/bin/pgbench/pgbench.c @@ -5011,6 +5011,16 @@ initPopulateTable(PGconn *con, const char *table, int64 base, j, total, (int) ((j * 100) / total), table, elapsed_sec, remaining_sec); + + /* + * If the previous progress message is longer than the current + * one, add spaces to the current line to fully overwrite any + * remaining characters from the previous message. + */ + if (prev_chars > chars) + fprintf(stderr, "%*c", prev_chars - chars, ' '); + fputc(eol, stderr); + prev_chars = chars; } /* let's not call the timing for each row, but only each 100 rows */ else if (use_quiet && (j % 100 == 0)) @@ -5026,20 +5036,20 @@ initPopulateTable(PGconn *con, const char *table, int64 base, (int) ((j * 100) / total), table, elapsed_sec, remaining_sec); + /* + * If the previous progress message is longer than the current + * one, add spaces to the current line to fully overwrite any + * remaining characters from the previous message. + */ + if (prev_chars > chars) + fprintf(stderr, "%*c", prev_chars - chars, ' '); + fputc(eol, stderr); + prev_chars = chars; + /* skip to the next interval */ log_interval = (int) ceil(elapsed_sec / LOG_STEP_SECONDS); } } - - /* - * If the previous progress message is longer than the current one, - * add spaces to the current line to fully overwrite any remaining - * characters from the previous message. - */ - if (prev_chars > chars) - fprintf(stderr, "%*c", prev_chars - chars, ' '); - fputc(eol, stderr); - prev_chars = chars; } if (chars != 0 && eol != '\n')

view thread (24+ messages)  latest in thread

Message-ID: <1457693.1738951804@sss.pgh.pa.us>
Permalink:  ../1457693.1738951804@sss.pgh.pa.us/
Also on:    postgresql.org/message-id/1457693.1738951804@sss.pgh.pa.us

 ·  · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: tgl@sss.pgh.pa.us, nathandbossart@gmail.com, andres@anarazel.de, masao.fujii@oss.nttdata.com, ishii@postgresql.org, pgsql-release@lists.postgresql.org
  Subject: Re: Fix for Extra Parenthesis in pgbench progress message
  In-Reply-To: <1457693.1738951804@sss.pgh.pa.us>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox