Hello Teodor,
replaced -1 by 0xffff.... so that the code is hopefully clearer.
I changed 0xff constant to ~INT64CONST(0), seems, it's more consistent way.
Also I remove some whitespaces in exprparse.y. Fixed version in attachment.
Fine, quite readable this way.
Actually, I prefer to see single scripting implementation in both psql and
pgbench,
I'll push for the implementations are to share more stuff in the future.
For instance the pgbench-if patch shares the conditional stack
implementation. I intend to move pgbench expression engine as a shared
front-end util, once its capabilites are extended and stable, which is
basically after this patch, so that client side expressions can be used in
psql.
Now, psql & pgbench contexts are slightly different, with an interactive
thing which must evaluate on the fly on one side and a scripting thing on
the other, so it would not be easy to share everything or to do everything
the same way.
but I suppose nobody has a power to do it in foreseen future. And,
may be, it's not a very good way to invent one script language instead of
using one of bunch of them, but, again, I'm afraid several months/years
discussion about how and which one to embed. But scripting is needed now, I
believe, at least I see several test scenarios which can not be implemented
with current pgbench and this patch allows to do it.
That is exactly why I'm pushing different things into pgbench (\gset,
\if, ...), to improve capabilities wrt to benchmarking.
So, I intend to push thish patch in current state. I saw several objections
from commiters in thread, but, seems, that objections are lifted. Am I right?
I think so.
--
Fabien.