Re: [HACKERS] pgbench - allow to store select results into variables
Alvaro Herrera <alvherre@2ndquadrant.com>
From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Fabien COELHO <coelho@cri.ensmp.fr>
Cc: Michael Paquier <michael@paquier.xyz>, Stephen Frost <sfrost@snowman.net>, Andrew Dunstan <andrew.dunstan@2ndquadrant.com>, PostgreSQL Developers <pgsql-hackers@postgresql.org>
Date: 2018-11-17T11:06:54Z
Lists: pgsql-hackers
On 2018-Nov-17, Fabien COELHO wrote: > > > I think this patch's Command->lines would benefit from using PQExpBuffer > > (or maybe StringInfo?) for the command string instead of open-coding > > string manipulation and allocation. > > Indeed it could be used, but it is not used anywhere in "pgbench": not for > lines, not for variable subtitutions, not for the PREPARE stuff... So I did > not think that it was time to start, I just kept the current style. > > Probably it could be a refactoring patch to replace all basic string stuff > with PQExpBuffer infrastructure within pgbench. Well, I think command handling was mostly straightforward before, but it's not as straightforward after your patch. Also, PQExpBuffer is already in use in pgbench when interacting with the lexer, so yeah I think we should fix that. I don't think we should replace *ALL* string handling in pgbench with PQExpBuffer, just the command stuff. > > I'm not sure that Command->first_line is really all that useful. It > > seems we go to a lot of trouble to keep it up to date. Isn't it easier > > to chop Command->lines at the first newline when it is needed? > > Hmmm, it is needed quite often (about 12 times) to report errors, that would > mean having to handle the truncation in many places, so I felt it was worth > the trouble. Ok, as long as we don't repeat the work during script execution. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
pgbench: Remove \cset
- 25ee70511ec2 12.0 landed
-
pgbench: add \cset and \gset commands
- 6260cc550b0e 12.0 landed
-
Adjust pgbench to allow non-ASCII characters in variable names.
- 9d36a386608d 11.0 landed
-
Refactor script execution state machine in pgbench.
- 12788ae49e19 10.0 cited
-
Allow empty queries in pgbench.
- 6471045230f5 10.0 cited