Trigger and function not on speaking terms
am 02.08.2004 22:20:15 von Jeff Boes
Hmm, this is puzzling me:
create or replace function fn_foo(text) returns trigger as '
begin
# Do some stuff with $1
end;
' language 'plpgsql';
CREATE FUNCTION
create table bar (aaa text);
CREATE TABLE
create trigger trg_bar
after insert or update on bar
execute procedure fn_foo('string');
ERROR: function fn_foo() does not exist
It would seem my trigger definition is trying to find fn_foo(), when I
mean for it to call fn_foo(TEXT).
--
(Posted from an account used as a SPAM dump. If you really want to get
in touch with me, dump the 'jboes' and substitute 'mur'.)
________
Jeffery Boes <>< jboes@qtm.net
Re: Trigger and function not on speaking terms
am 02.08.2004 23:20:31 von RP
On Mon, Aug 02, 2004 at 04:20:15PM -0400, Jeff Boes wrote:
> It would seem my trigger definition is trying to find fn_foo(), when I
> mean for it to call fn_foo(TEXT).
Triggers have to be declared to take no arguments; they find the rows on
which they operate in magical ways. (For PL/PgSQL triggers, see chapter
37.10 of the manual.)
Richard
---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faqs/FAQ.html
Re: Trigger and function not on speaking terms
am 02.08.2004 23:21:24 von sszabo
On Mon, 2 Aug 2004, Jeff Boes wrote:
> Hmm, this is puzzling me:
>
> create or replace function fn_foo(text) returns trigger as '
> begin
> # Do some stuff with $1
> end;
> ' language 'plpgsql';
>
> CREATE FUNCTION
>
> create table bar (aaa text);
>
> CREATE TABLE
>
> create trigger trg_bar
> after insert or update on bar
> execute procedure fn_foo('string');
>
> ERROR: function fn_foo() does not exist
>
> It would seem my trigger definition is trying to find fn_foo(), when I
> mean for it to call fn_foo(TEXT).
I don't remember why, but the arguments from the create trigger statement
are passed differently from standard arguments (I think it's like TGARGS
in plpgsql).
---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings