Re: [GENERAL] Trigger (Calling a Procedure)
I got your point. however, my requirement is something like this. The trigger shold start another function (a stored procedure) after any event is fired. how do I accomplish this goal? Harpreet On 8/16/06, Michael Fuhr [EMAIL PROTECTED] wrote: On Wed, Aug 16, 2006 at 01:35:47AM -0400, Harpreet Dhaliwal wrote: I'm trying to create a trigger with the following definition: CREATE TRIGGER insert_price_change AFTER INSERT OR DELETE OR UPDATE ON raw_emailFOR EACH ROW EXECUTE PROCEDURE add_one(1); Procedure / Function add_one has the following definition CREATE FUNCTION add_one(integer) RETURNS integer AS '/usr/local/pgsql/jsb/add_one', 'add_one' LANGUAGE C STRICT; function add_one is running fine. When I try to create the trigger insert_price_change, it throws me the follwoing error: ERROR:function add_one() does not existTrigger functions must return type trigger and they must bedeclared with no arguments.You can pass an argument as in your CREATE TRIGGER statement but a trigger function receives its argumentsdifferently than an ordinary function.See the Triggers chapterin the documentation, especially Writing Trigger Functions in C: http://www.postgresql.org/docs/8.1/interactive/triggers.htmlUnless you need to use C I'd suggest using PL/pgSQL.Even if youdo need to use C I'd recommend practicing with PL/pgSQL to learn the basics with a simpler language.http://www.postgresql.org/docs/8.1/interactive/plpgsql-trigger.html--Michael Fuhr
Re: [GENERAL] Trigger (Calling a Procedure)
Its actually something like the trigger should start a C function after insert and the C function has the ECPG code for some more inserts. Itssimilar tothe way we dynamically load a shared library while executing a stored procedure, as in , executing a fucntion in C file using stored procedure/ function. Harpreet On 8/16/06, Harpreet Dhaliwal [EMAIL PROTECTED] wrote: I got your point. however, my requirement is something like this. The trigger shold start another function (a stored procedure) after any event is fired. how do I accomplish this goal? Harpreet On 8/16/06, Michael Fuhr [EMAIL PROTECTED] wrote: On Wed, Aug 16, 2006 at 01:35:47AM -0400, Harpreet Dhaliwal wrote: I'm trying to create a trigger with the following definition: CREATE TRIGGER insert_price_change AFTER INSERT OR DELETE OR UPDATE ON raw_emailFOR EACH ROW EXECUTE PROCEDURE add_one(1); Procedure / Function add_one has the following definition CREATE FUNCTION add_one(integer) RETURNS integer AS '/usr/local/pgsql/jsb/add_one', 'add_one' LANGUAGE C STRICT; function add_one is running fine. When I try to create the trigger insert_price_change, it throws me the follwoing error: ERROR:function add_one() does not existTrigger functions must return type trigger and they must bedeclared with no arguments.You can pass an argument as in your CREATE TRIGGER statement but a trigger function receives its argumentsdifferently than an ordinary function.See the Triggers chapterin the documentation, especially Writing Trigger Functions in C: http://www.postgresql.org/docs/8.1/interactive/triggers.html Unless you need to use C I'd suggest using PL/pgSQL.Even if youdo need to use C I'd recommend practicing with PL/pgSQL to learn the basics with a simpler language. http://www.postgresql.org/docs/8.1/interactive/plpgsql-trigger.html--Michael Fuhr
[GENERAL] Trigger (Calling a Procedure)
Hi,I'm trying to create a trigger with the following definition:CREATE TRIGGER insert_price_change AFTER INSERT OR DELETE OR UPDATE ON raw_email FOR EACH ROW EXECUTE PROCEDURE add_one(1);Procedure / Function add_one has the following definition CREATE FUNCTION add_one(integer) RETURNS integer AS '/usr/local/pgsql/jsb/add_one', 'add_one' LANGUAGE C STRICT;function add_one is running fine.When I try to create the trigger insert_price_change, it throws me the follwoing error: ERROR: function add_one() does not existHowever, I can see function add_one(int4) as one of the functions in pgadmin.Don't know whats going on wrong.Thanks,~Harpreet
Re: [GENERAL] Trigger (Calling a Procedure)
On Wed, Aug 16, 2006 at 01:35:47AM -0400, Harpreet Dhaliwal wrote: I'm trying to create a trigger with the following definition: CREATE TRIGGER insert_price_change AFTER INSERT OR DELETE OR UPDATE ON raw_email FOR EACH ROW EXECUTE PROCEDURE add_one(1); Procedure / Function add_one has the following definition CREATE FUNCTION add_one(integer) RETURNS integer AS '/usr/local/pgsql/jsb/add_one', 'add_one' LANGUAGE C STRICT; function add_one is running fine. When I try to create the trigger insert_price_change, it throws me the follwoing error: ERROR: function add_one() does not exist Trigger functions must return type trigger and they must be declared with no arguments. You can pass an argument as in your CREATE TRIGGER statement but a trigger function receives its arguments differently than an ordinary function. See the Triggers chapter in the documentation, especially Writing Trigger Functions in C: http://www.postgresql.org/docs/8.1/interactive/triggers.html Unless you need to use C I'd suggest using PL/pgSQL. Even if you do need to use C I'd recommend practicing with PL/pgSQL to learn the basics with a simpler language. http://www.postgresql.org/docs/8.1/interactive/plpgsql-trigger.html -- Michael Fuhr ---(end of broadcast)--- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq