Re: [HACKERS] parser problem

Поиск
Список
Период
Сортировка
От Thomas G. Lockhart
Тема Re: [HACKERS] parser problem
Дата
Msg-id 353EA326.4A3C047E@alumni.caltech.edu
обсуждение исходный текст
Ответ на parser problem  (Michael Meskes <meskes@topsystem.de>)
Ответы Re: [HACKERS] parser problem  (Michael Meskes <meskes@topsystem.de>)
Список 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 по дате отправления:

Предыдущее
От: Massimo Dal Zotto
Дата:
Сообщение: Re: [HACKERS] Anyone working on asynchronous NOTIFY reception?
Следующее
От: "Thomas G. Lockhart"
Дата:
Сообщение: Re: [QUESTIONS] Anything like strftime() for PostgreSQL?