Re: pgbench - allow backslash-continuations in custom scripts - Mailing list pgsql-hackers

From Kyotaro HORIGUCHI
Subject Re: pgbench - allow backslash-continuations in custom scripts
Date
Msg-id 20150819.091324.95992370.horiguchi.kyotaro@lab.ntt.co.jp
Whole thread Raw
In response to Re: pgbench - allow backslash-continuations in custom scripts  (Fabien COELHO <coelho@cri.ensmp.fr>)
Responses Re: pgbench - allow backslash-continuations in custom scripts
List pgsql-hackers
Hi, all.

> > I don't think we actually want backslash-continuations. The feature we
> > want is "allow SQL statements span multiple lines", and using the psql
> > lexer solves that. We don't need the backslash-continuations when we
> > have that.
> 
> Sure. The feature *I* initially wanted was to have multi-line
> meta-commands. For this feature ISTM that continuations are, alas, the
> solution.
> 
> >> Indeed there are plenty of links already which are generated by
> >> makefiles
> >> (see src/bin/pg_xlogdump/*), and probably a copy is made on
> >> windows. There
> >> should no file duplication within the source tree.
> >
> > Yeah, following the example of pg_xlogdump and others is the way to
> > go.
> >
> > Docs need updating, and there's probably some cleanup to do before
> > this is ready for committing, but overall I think this is definitely
> > the right direction.
> 
> I've created an entry for the next commitfest, and put the status to
> "waiting on author".
> 
> > I complained upthread that this makes it impossible to use
> > "multi-statements" in pgbench, as they would be split into separate
> > statements, but looking at psqlscan.l there is actually a syntax for
> > that in psql already. You escape the semicolon as \;, e.g. "SELECT 1
> > \; SELECT 2;", and then both queries will be sent to the server as
> > one. So even that's OK.
> 
> Good!

Hmm. psqlscan.l handles multistatement naturally.
I worked on that and the attached patche set does,
- backslash continuation for pgbench metacommands.
  set variable \      <some value>
- SQL statement natural continuation lines.
  SELECT :foo   FROM  :bar;
- SQL multi-statement.
  SELECT 1; SELECT 2;


The work to be left is eliminating double-format of Command
struct.


regards,

-- 
Kyotaro Horiguchi
NTT Open Source Software Center

pgsql-hackers by date:

Previous
From: David Rowley
Date:
Subject: Re: Bug? ExecChooseHashTableSize() got assertion failed with crazy number of rows
Next
From: Kouhei Kaigai
Date:
Subject: Re: Bug? ExecChooseHashTableSize() got assertion failed with crazy number of rows