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) downloaddiff --git a/src/bin/pgbench/pgbench.c b/src/bin/pgbench/pgbench.cindex 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')
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