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

From Tom Lane
Subject Re: Fix for Extra Parenthesis in pgbench progress message
Date
Msg-id 1456496.1738951118@sss.pgh.pa.us
Whole thread Raw
In response to Re: Fix for Extra Parenthesis in pgbench progress message  (Andres Freund <andres@anarazel.de>)
Responses Re: Fix for Extra Parenthesis in pgbench progress message
Re: Fix for Extra Parenthesis in pgbench progress message
List pgsql-hackers
Andres Freund <andres@anarazel.de> writes:
> I just did pgbench -i 100 -q via ssh and noticed it was *way* slower than I
> expected.  Did it with debian's pgbench, no such issue.

> It's due to this patch.

Oh!  The problem is that the hunk

+       /*
+        * 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;

is executed unconditionally for each data row, when we should only run
it when we printed something.  It's kind of invisible if "eol" is \r,
but I can believe that it's driving the terminal nuts.  Trying it
here, it also makes the thing practically unresponsive to control-C.

> Given the upcoming set of minor releases, I think it may be best for this this
> patch ought to be reverted for now.

Seems easy enough to fix.  But it's now middle of the night Saturday
morning in Japan, so I doubt Masao-san or Ishii-san will see this
for awhile.  And the release freeze is coming up fast.

Let me have a go at fixing it, and if it turns out to be harder
than I think, I'll revert it instead.

            regards, tom lane



pgsql-hackers by date:

Previous
From: Nathan Bossart
Date:
Subject: Re: Fix for Extra Parenthesis in pgbench progress message
Next
From: Masahiko Sawada
Date:
Subject: Re: Fix assert failure when decoding XLOG_PARAMETER_CHANGE on primary