Re: Why do OLD and NEW have special internal names?
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Jan Wieck <JanWieck@Yahoo.com>
Cc: pgsql-hackers@postgresql.org
Date: 2009-11-20T21:39:17Z
Lists: 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