Обсуждение: trigger trouble -- procedure not found

Поиск
Список
Период
Сортировка

trigger trouble -- procedure not found

От
Kevin Way
Дата:
I'm having trouble creating a trigger.  First i'm creating a function,
add_to_search in PL/pgSQL.

\df verifies the existance of this function:smallint                 | add_to_search       | text, text, text, integer

but when I call:

CREATE TRIGGER item_insert_search_add AFTER INSERT   ON item FOR EACH ROW   EXECUTE PROCEDURE add_to_search (name,
description,reason, node_id);
 

I get: 
ERROR:  CreateTrigger: function add_to_search() does not exist

What am I missing here?  It seems to me that I'm missing something very
simple, but I can't figure out what it is for the life of me.

Kevin Way


Re: trigger trouble -- procedure not found

От
Bhuvan A
Дата:

On Sep 14, Kevin Way wrote:

> I'm having trouble creating a trigger.  First i'm creating a function,
> add_to_search in PL/pgSQL.
> 
> \df verifies the existance of this function:
>  smallint                 | add_to_search       | text, text, text, integer
> 

--  We can verify all the functions which wont return 'OPAQUE'.

> but when I call:
> 
> CREATE TRIGGER item_insert_search_add AFTER INSERT
>     ON item FOR EACH ROW
>     EXECUTE PROCEDURE add_to_search (name, description, reason, node_id);
> 
> I get: 
> ERROR:  CreateTrigger: function add_to_search() does not exist

The function executed by a trigger should by default return a
record. ie.. the return type should be 'OPAQUE'.

Try the above..
Hope this will work.

> 
> What am I missing here?  It seems to me that I'm missing something very
> simple, but I can't figure out what it is for the life of me.
> 
> Kevin Way
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
> 



Re: trigger trouble -- procedure not found

От
Stephan Szabo
Дата:
On Fri, 14 Sep 2001, Kevin Way wrote:

> I'm having trouble creating a trigger.  First i'm creating a function,
> add_to_search in PL/pgSQL.
> 
> \df verifies the existance of this function:
>  smallint                 | add_to_search       | text, text, text, integer
> 
> but when I call:
> 
> CREATE TRIGGER item_insert_search_add AFTER INSERT
>     ON item FOR EACH ROW
>     EXECUTE PROCEDURE add_to_search (name, description, reason, node_id);
> 
> I get: 
> ERROR:  CreateTrigger: function add_to_search() does not exist
> 
> What am I missing here?  It seems to me that I'm missing something very
> simple, but I can't figure out what it is for the life of me.

Trigger functions return opaque and take no arguments.  Arguments given
on the create trigger statement are passed in a special fashion. (I
believe for plpgsql you'd look at TG_NARGS and TG_ARGV[])



Re: trigger trouble -- procedure not found

От
Kevin Way
Дата:
Thank you.  Later checking showed that these requirements were listed in
the first sentence of the relevant page.  Everything works like a champ
now.  I've made a small donation to the EFF and to the Red Cross as a
minor thanks for your prompt help.

Kevin Way