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

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Why do OLD and NEW have special internal names?
Дата
Msg-id 9032.1258753157@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Why do OLD and NEW have special internal names?  (Jan Wieck <JanWieck@Yahoo.com>)
Список pgsql-hackers
Jan Wieck <JanWieck@Yahoo.com> writes:
> On 11/20/2009 1:12 AM, Tom Lane wrote:
>> Jan Wieck <JanWieck@Yahoo.com> writes:
>>> But this brings up another point about the recent discussion of what 
>>> RENAME is good for. Removing RENAME may conflict with using OLD/NEW in 
>>> UPDATE ... RETURNING. No?
>> 
>> Um ... not sure why.  Specific example please?

> Inside a trigger proc, NEW is supposed to mean the new row for the table 
> that fired the trigger. However, inside an UPDATE RETURNING for example, 
> there is another set of NEW and OLD.

Uh, no there isn't ... and if there were I suppose it'd act much like
a query-local alias.

> Let's call the trigger call's NEW 
> NEW_a and the UPDATE RETURNING NEW NEW_b. How would the developer 
> specify something like

> INSERT ... RETURNING (NEW_a.value - NEW_b.value)?

They could use ALIAS to rename the trigger's NEW to something else.
        regards, tom lane


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Prettification versus dump safety
Следующее
От: Robert Haas
Дата:
Сообщение: Re: [COMMITTERS] pgsql: Add a WHEN clause to CREATE TRIGGER, allowing a boolean