Re: [HACKERS] parser problem - Mailing list pgsql-hackers

From Thomas G. Lockhart
Subject Re: [HACKERS] parser problem
Date
Msg-id 353EA326.4A3C047E@alumni.caltech.edu
Whole thread Raw
In response to parser problem  (Michael Meskes <meskes@topsystem.de>)
Responses Re: [HACKERS] parser problem
List pgsql-hackers
> Is it correct that the following two statements are equal?
> select "a" from foo;
> select a from foo;

Yes.

> That results in the following problem for ecpg:
> When I'm in SQL mode (that is after reading "exec sql") I do not get
> quotations. But what do I do with this?
>
> exec sql whenever sqlerror do printf("There was an error\n");
>
> Since my lex file is almost the same as scan.l I wonder if anyone has
> an idea.

What different kinds of clauses are available with the "whenever ...
do"? My Ingres manual indicates that the syntax is:

  exec sql whenever <condition> <action>

where <condition> is one of:

  sqlwarning
  sqlerror
  sqlmessage
  not found
  dbevent

and the <action> is one of:

  continue
  stop
  goto <label>
  call <procedure>

where <procedure> cannot be called with any arguments. This syntax would
be easy to parse with your existing lexer. My SQL books shows an even
more limited syntax with only "continue" and "goto" allowed.

If you want to allow some other syntax, including double-quoted strings,
then you will need to implement it explicitly in your grammar.

                       - Tom

pgsql-hackers by date:

Previous
From: Massimo Dal Zotto
Date:
Subject: Re: [HACKERS] Anyone working on asynchronous NOTIFY reception?
Next
From: "Thomas G. Lockhart"
Date:
Subject: Re: [QUESTIONS] Anything like strftime() for PostgreSQL?