Re: pgbench logging broken by time logic changes

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Andrew Dunstan <andrew@dunslane.net>
Cc: Fabien COELHO <coelho@cri.ensmp.fr>, Alvaro Herrera <alvherre@alvh.no-ip.org>, Thomas Munro <thomas.munro@gmail.com>, Gregory Smith <gregsmithpgsql@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>, david.christensen@crunchydata.com
Date: 2021-06-24T22:25:55Z
Lists: pgsql-hackers
On Thu, Jun 24, 2021 at 08:03:27AM -0400, Andrew Dunstan wrote:
> On 6/24/21 2:46 AM, Fabien COELHO wrote:
>>> Using grep() with "$re" results in all the fields matching.  Using on
>>> the contrary "/$re/" in grep(), like list_files(), would only match
>>> the first one, which is correct.
>>
>> Ok, good catch. Perl is kind of a strange language.

Okay, I have extracted this part from your patch, and back-patched
this fix down to 11.  The comments were a good addition, so I have
kept them.  I have also made the second regex of check_pgbench_logs()
pickier with the client ID value expected, as it can only be 0.

> By contrast grep (/$re/, @values) returns those elements of @values that
> match the regex.

Thanks for the details here.
--
Michael

Commits

  1. Fix pgbench timestamp bugs.

  2. Fix pattern matching logic for logs in TAP tests of pgbench

  3. pgbench: Improve time logic.

  4. pgbench: Synchronize client threads.

  5. pgbench: refactor handling of stats tracking