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

Jan Wieck <janwieck@yahoo.com>

From: Jan Wieck <JanWieck@Yahoo.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@postgresql.org
Date: 2009-11-20T05:30:54Z
Lists: pgsql-hackers
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?
> 
> 			regards, tom lane

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. 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)?


Jan

-- 
Anyone who trades liberty for security deserves neither
liberty nor security. -- Benjamin Franklin