Thread: how do i create trigger with params?
i would like to create c-type trigger which is used with params. so i created function: CREATE function dfti(text) RETURNS opaque as '/home/users/pgdba/work/lib/dfti.so' language 'C'; o.k. created byt when i try to: CREATE trigger dfti_trg after INSERT or UPDATE or DELETE on newstexts for each row execute procedure dfti ('newstexts'); i get: psql:create.sql:9: ERROR: CreateTrigger: function dfti() does not exist which is of course true. function dfti() doesn't exist, but i wanted to use dfti(text)! if i change function creation not to have (text) trigger is properly created, but it fails (killing backend) on insert. what did i wrong? depesz -- hubert depesz lubaczewski http://www.depesz.pl/ ------------------------------------------------------------------------ najwspanialszą rzeczą jaką dało nam nowoczesne społeczeństwo, jest niesamowita wręcz łatwość unikania kontaktów z nim ...
From: "hubert depesz lubaczewski" <depesz@depesz.pl> > i would like to create c-type trigger which is used with params. > so i created function: > CREATE function dfti(text) RETURNS opaque as > '/home/users/pgdba/work/lib/dfti.so' language 'C'; > o.k. created > byt when i try to: > CREATE trigger dfti_trg after INSERT or UPDATE or DELETE on newstexts for each > row execute procedure dfti ('newstexts'); > i get: > psql:create.sql:9: ERROR: CreateTrigger: function dfti() does not exist > > which is of course true. function dfti() doesn't exist, but i wanted to use > dfti(text)! I'll quote Stephen Szabo from a couple of days ago (check archive for full details) > > Right, because triggers take arguments differently. Trigger functions > must return opaque and take no arguments. Arguments passed at create > trigger time are passed in via TG_ARGV[] (number in TG_NARGS i believe) > I think there's probably an example of this in contrib/noupdate. - Richard Huxton