Re: [HACKERS] pgbench tap tests & minor fixes - Mailing list pgsql-hackers

From Fabien COELHO
Subject Re: [HACKERS] pgbench tap tests & minor fixes
Date
Msg-id alpine.DEB.2.20.1705301632090.30762@lancre
Whole thread Raw
In response to Re: [HACKERS] pgbench tap tests & minor fixes  (Nikolay Shaplov <dhyan@nataraj.su>)
Responses Re: [HACKERS] pgbench tap tests & minor fixes  (Nikolay Shaplov <dhyan@nataraj.su>)
List pgsql-hackers
Hello Nikolay,

> Year, this is much more clear for me. Now I understand this statistics code.

Great.

> I still have three more questions. A new one:
>
> ========
>    my_command->line = expr_scanner_get_substring(sstate,
>                                                  start_offset,
> -                                                 end_offset);
> +                                                 end_offset + 1);
> ========
>
> I do not quite understand what are you fixing here,

I fix a truncation which appears in an error message later on.

> I did not find any mention of it in the patch introduction letter.

Indeed. Just a minor bug fix to avoid an error message to be truncated. If 
you remove it, then you can get:

  missing argument in command "sleep"
  \slee

Note the missing "p"...

> And more, expr_scanner_get_substring is called twice in very similar 
> code, and it is fixed only once. Can you tell more about this fix.

I fixed the one which was generating truncated messages. I did not notice
other truncated messages while testing, so I assume that other calls are 
correct, but I did not investigate further, so I may be wrong. Maybe in 
other instances the truncation removes a "\n" which is intended?

> Old one:
>
> (nxacts <= 0 || st->cnt < nxacts)) /* with -t, do not overshoot */
> if (progress_timestamp && progress <= 0)

>> I am still sure that the right way is to do '== 0' and Assert for case 
>> when it is negative.

  - nxacts is a counter, it could wrap around at least theoretically.

  - progress is checked for >=0, so ==0 is fine.

Note that the same trick is used in numerous places in pgbench code, and I 
did not wrote most of them:

   st->nvariables <= 0
   duration <= 0
   total->cnt <= 0
   (nxacts <= 0 && duration <= 0)

> If you are sure it is good to do '<= 0', let's allow commiter to do final
> decision.

I'm sure that it is a minor thing, and that the trick is already used in 
the code. I changed progress because there is a clearly checked, but I 
kept nxacts because of the theoritical wrap around.

> And another unclosed issue:
>
> I still do not like command_checks_all function name (I would prefer
> command_like_more) but I can leave it for somebody more experienced (i.e.
> commiter) to make final decision, if you do not agree with me here...

I've propose the name because it checks for everything (multiple stdout, 
multiple stderr, status), hence "all". The "like" just refers to stdout 
regex, so is quite limited, and "checks all" seems to be a good summary of 
what is done, while "like more" is pretty unclear to me, because it is 
relative to "like", so I have to check what "like" does and then assume 
that it does more...

> /* Why I am so bothered with function name. We are adding this function to
> library that are used by all TAP-test-writers. So here things should be 100%
> clear for all.

Yep. "checks_all" is clearer to me that "like_more" which is relative to 
another function.

> If this function was only in pgbench test code, I would not
> care about the name at all. But here I do. I consider it is important to give
> best names to the functions in shared libraries. */
>
> Hope these are last one. Let's close the first issue, fix or leave unclosed
> others, and finish with this patch :-)

Here is a v6.

  - it uses "progress == 0"

  - it does not change "nxacts <= 0" because of possible wrapping

  - it fixes two typos in a perl comment about the checks_all function

  - I kept "checks all" because this talks more to me than "like more"
    if a native English speaker or someone else has an opinion, it is
    welcome.

Also, if someone could run a test on windows, it would be great.

-- 
Fabien.
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Attachment

pgsql-hackers by date:

Previous
From: Stephen Frost
Date:
Subject: Re: [JDBC] [HACKERS] Channel binding support for SCRAM-SHA-256
Next
From: Joe Conway
Date:
Subject: Re: [HACKERS] Use of non-restart-safe storage by temp_tablespaces