Re: Why do OLD and NEW have special internal names?

Поиск
Список
Период
Сортировка
От Robert Haas
Тема Re: Why do OLD and NEW have special internal names?
Дата
Msg-id 603c8f070911051703m7593c301md64523dbde717365@mail.gmail.com
обсуждение исходный текст
Ответ на Why do OLD and NEW have special internal names?  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Why do OLD and NEW have special internal names?
Список pgsql-hackers
On Thu, Nov 5, 2009 at 4:33 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> So I was testing the next step of plpgsql modification, namely actually
> letting the parser hooks do something, and it promptly blew up in
> trigger functions, like so:
>
> + ERROR:  OLD used in query that is not in a rule
> + LINE 1: SELECT  OLD
> +                 ^
> + QUERY:  SELECT  OLD
> + CONTEXT:  SQL statement in PL/PgSQL function "trigger_data" near line 35
>
> The reason is that because plpgsql is no longer translating references
> to its names into Params before letting the core parser see them, the
> kluge in gram.y that changes "OLD" to "*OLD*" and "NEW" to "*NEW*"
> kicks in, or actually decides to throw an error instead of kicking in.
>
> I am wondering what is the point at all of having that kluge.  It
> certainly doesn't manage to make OLD/NEW not act like reserved words,
> in fact rather more the opposite, as shown here.  If we just made those
> names be ordinary table alias names in rule queries, wouldn't things
> work as well or better?
>
> BTW, this brings up another point, which is that up to now it's often
> been possible to use plpgsql variable names that conflict with
> core-parser reserved words, so long as you didn't need to use the
> reserved word with its special meaning.  That will stop working when
> this patch goes in.  Doesn't bother me any, but if anyone thinks it's
> a serious problem, speak now.

Any keyword or just fully reserved keywords?

...Robert


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Itagaki Takahiro
Дата:
Сообщение: Re: Typed tables
Следующее
От: Robert Haas
Дата:
Сообщение: Re: AFTER triggers & RETURN