Re: Allowing line-continuation in pgbench custom scripts - Mailing list pgsql-hackers

From Christoph Berg
Subject Re: Allowing line-continuation in pgbench custom scripts
Date
Msg-id 20140526212907.GA24735@msgid.df7cb.de
Whole thread Raw
In response to Re: Allowing line-continuation in pgbench custom scripts  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Re: Tom Lane 2014-05-26 <26629.1401119523@sss.pgh.pa.us>
> >> Yeah, that would be much cleaner.
> 
> > But that would require duplicating the lexing stuff to determine where
> > quotes are and where commands end.  There are already some cases where
> > pgbench itself is the bottleneck; adding a lexing step would be more
> > expensive, no?  Whereas simply detecting line continuations would be
> > cheaper.
> 
> Well, we only parse the script file(s) once at run start, and that time
> isn't included in the TPS timing, so I don't think performance is really
> an issue here.  But yeah, the amount of code that would have to be
> duplicated out of psql is pretty daunting --- it'd be a maintenance
> nightmare, for what seems like not a lot of gain.  There would also
> be a compatibility issue if we went this way, because existing scripts
> that haven't bothered with semicolon line terminators would break.

Fwiw, I would love to have some \ line continuation thing also for
.psqlrc. I have some dozen \set in there containing queries for
looking into stats/locks/whatever I can invoke just typing e.g.
:user_tables, and these are pretty hard to edit as they are squeezed
on one line.

I agree that putting an SQL parser into the backslash command parser
is overkill, but there's hardly a chance backslashes at the end of a
backslash command line would break anything, except for meeting what
most people would expect.

Christoph
-- 
cb@df7cb.de | http://www.df7cb.de/



pgsql-hackers by date:

Previous
From: Josh Berkus
Date:
Subject: Re: Allowing line-continuation in pgbench custom scripts
Next
From: Christoph Berg
Date:
Subject: Re: [PATCH] Replacement for OSSP-UUID for Linux and BSD