Thread: using NEW in a trigger calling a function in plpgsql...

using NEW in a trigger calling a function in plpgsql...

From
"Creager, Robert S"
Date:
Hey,

I'm attempting to create update/insert/delete triggers which end up relying
on two functions, add_influence and remove_influence (both plpgsql
functions).  I've attempted to call these functions which accepts a known
table as a parameter, and am PERFORM'ing a call to that function with NEW as
the parameter.  The error I receive is: ERROR:  NEW used in non-rule query.
Can I accomplish this in plpgsql, or do I need to switch over to C/C++?  I
would prefer to not re-select the data info another variable...

Thanks,
Rob

Robert Creager
Senior Software Engineer
Client Server Library
303.673.2365 V
303.661.5379 F
888.912.4458 P
StorageTek
INFORMATION made POWERFUL



Re: using NEW in a trigger calling a function in plpgsql...

From
Stephan Szabo
Date:
On Wed, 21 Mar 2001, Creager, Robert S wrote:

> I'm attempting to create update/insert/delete triggers which end up relying
> on two functions, add_influence and remove_influence (both plpgsql
> functions).  I've attempted to call these functions which accepts a known
> table as a parameter, and am PERFORM'ing a call to that function with NEW as
> the parameter.  The error I receive is: ERROR:  NEW used in non-rule query.
> Can I accomplish this in plpgsql, or do I need to switch over to C/C++?  I
> would prefer to not re-select the data info another variable...

Trigger functions take no arguments and return opaque.  Inside the plpgsql
trigger you should automatically get NEW as the appropriate row, you
shouldn't need to pass it in (you can use NEW in the body of the
functions).