Re: pgbench - add \aset to store results of a combined query

Fabien COELHO <coelho@cri.ensmp.fr>

From: Fabien COELHO <coelho@cri.ensmp.fr>
To: Michael Paquier <michael@paquier.xyz>
Cc: Ibrar Ahmed <ibrar.ahmad@gmail.com>, PostgreSQL Developers <pgsql-hackers@lists.postgresql.org>
Date: 2019-11-29T09:34:05Z
Lists: pgsql-hackers

Attachments

Michaël,

> +   bool        aset;
>
> It seems to me that there is no point to have the variable aset in 
> Command because this structure includes already MetaCommand, so the 
> information is duplicated. [...] Perhaps I am missing something?

Yep. ISTM that you are missing that aset is not an independent meta 
command like most others but really changes the state of the previous SQL 
command, so that it needs to be stored into that with some additional 
fields. This is the same with "gset" which is tagged by a non-null 
"varprefix".

So I cannot remove the "aset" field.

> And I would suggest to change readCommandResponse() to use a MetaCommand 
> in argument.

MetaCommand is not enough: we need varprefix, and then distinguishing 
between aset and gset. Although this last point can be done with a 
MetaCommand, ISTM that a bool is_aset is clear and good enough. It is 
possible to switch if you insist on it, but I do not think it is 
desirable.

Attached v4 removes an unwanted rebased comment duplication and does minor 
changes while re-reading the code.

-- 
Fabien.

Commits

  1. Add support for \aset in pgbench