On Mon, 2006-08-28 at 13:45 -0400, Tom Lane wrote: > Peter Eisentraut <[EMAIL PROTECTED]> writes: > > Tom Lane wrote: > > > Wait a minute. What I thought we had agreed to was a patch to make > > > commands sent with \g use a cursor. This patch changes SendQuery > > > so that *every* command executed via psql is treated this way. > > > That's what I remembered. I don't think we want to introduce a > > difference between ; and \g. > > Have we measured the performance impact, then? The last time I profiled > psql, GetVariable was already a hotspot, and this introduces another > call of it into the basic query loop whether you use the feature or not. > > regards, tom lane
Hi, after agreeing on using a \set variable, I proposed to have it influence "\g" as well as ";", because I thought that would be the most expected behaviour. IMHO I'm with Peter, that introducing a difference between "\g" and ";" would go against the principle of least surprise. Performance-wise I took for granted without checking that GetVariable's running time would be negligible. [looks at the code] I see it's it's basically two function calls with a loop over a linked list of values (in the order of 10) doing strcmps and one strtol. It is not quite clear to me what the impact of this is. I could imagine it would show up only if you perform lots of trivial queries through psql. I'm going to benchmark something now and report back. Anyway, regardless the benchmark, I feel it's somehow not clean to have a variable introduce a difference between "\g" and ";". [goes benchmarking...] Bye, Chris. -- Chris Mair http://www.1006.org ---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster