Thread: trigger parameters, what am I doing wrong ??
<div dir="ltr">Hi guys. I'm trying to pass a parameter to trigger procedure but it's not working and I have no idea why sinceit looks pretty ok. Here's what I do :<br /><br />CREATE OR REPLACE FUNCTION test_proc()<br /> RETURNS "trigger" AS<br/>$BODY$<br />DECLARE<br />chk boolean;<br />par integer := TG_ARGV[0];<br /><br />BEGIN<br />RAISE NOTICE 'TG_ARGV= %, TG_NARGS = %, par = %', TG_ARGV[0], TG_NARGS, par;<br /><br />-- [...] some computations<br /><br />RETURN NEW;<br/>END;<br /><br />$BODY$<br /> LANGUAGE 'plpgsql' VOLATILE;<br /><br />CREATE TRIGGER jks_test_proc_tg<br /> AFTERUPDATE<br /> ON test_table<br /> FOR EACH ROW<br /> EXECUTE PROCEDURE test_proc(42);<br /><br />And here's what RAISENOTICE looks like : NOTICE: TG_ARGV = <NULL>, TG_NARGS = 0, par = <NULL><br /><br />What's wrong with it?? I'm running 8.1.4<br /><br />regards<br />mk<br /></div>
"Marcin Krawczyk" <jankes.mk@gmail.com> writes: > And here's what RAISE NOTICE looks like : NOTICE: TG_ARGV = <NULL>, > TG_NARGS = 0, par = <NULL> > What's wrong with it ?? I'm running 8.1.4 Works for me: regression=# insert into test_table values(1); INSERT 0 1 regression=# update test_table set f1 = 2; NOTICE: TG_ARGV = 42, TG_NARGS = 1, par = 42 UPDATE 1 You need to show a more complete example of what you're doing. regards, tom lane
With some version (but I don't remember which) I had the same problem.
I solved it by assigning TG_ARGV[0] to a variable and use the variable in the RAISE NOTICE.
>>> Tom Lane <tgl@sss.pgh.pa.us> 2008-10-09 19:22 >>>
"Marcin Krawczyk" <jankes.mk@gmail.com> writes:
> And here's what RAISE NOTICE looks like : NOTICE: TG_ARGV = <NULL>,
> TG_NARGS = 0, par = <NULL>
> What's wrong with it ?? I'm running 8.1.4
Works for me:
regression=# insert into test_table values(1);
INSERT 0 1
regression=# update test_table set f1 = 2;
NOTICE: TG_ARGV = 42, TG_NARGS = 1, par = 42
UPDATE 1
You need to show a more complete example of what you're doing.
regards, tom lane
--
Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-sql
>>> Tom Lane <tgl@sss.pgh.pa.us> 2008-10-09 19:22 >>>
"Marcin Krawczyk" <jankes.mk@gmail.com> writes:
> And here's what RAISE NOTICE looks like : NOTICE: TG_ARGV = <NULL>,
> TG_NARGS = 0, par = <NULL>
> What's wrong with it ?? I'm running 8.1.4
Works for me:
regression=# insert into test_table values(1);
INSERT 0 1
regression=# update test_table set f1 = 2;
NOTICE: TG_ARGV = 42, TG_NARGS = 1, par = 42
UPDATE 1
You need to show a more complete example of what you're doing.
regards, tom lane
--
Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-sql