Hello Tom,
>> (although actually, why wouldn't we want to just implement variable
>> substitution exactly like it is in psql?
>
> Pgbench variable substitution is performed when the script is run, not while
> the file is being processed for being split, which is when a lexer would be
> used. The situation is not the same with psql. The most it could do would be
> to keep track of what substitution are done in queries.
>
>> So this is looking *eminently* doable.
>
> Possibly. How much more effort would be involved compared to the quick patch
> I did, I wonder:-)
I had a quick look at the code, and although it seems doable to hack the
psql lexer for pgbench benefit, I do not think it is a good idea:
- improving pgbench scripts is really a small feature which requires a light weight approach in my opinion. There is
noreal benefit of having a lexer solution which can handle contrived cases, because they would be contrived cases
andnot the kind of tests really written by pgbench users.
- the solution would probably be fragile to changes in psql, or could prevent such changes because of the pgbench
dependency, and this does not look desirable.
- it would involve much more time than I'm ready to give on such a small feature.
So the current patch, or possibly variants of this patch to fix issues
that may be raised, is what I'm ready to put forward on this.
If you feel that this feature only deserve a lexer solution, then the
patch should be "returned with feedback".
--
Fabien.