Re: [GENERAL] Trigger (Calling a Procedure)

2006-08-16 Thread Harpreet Dhaliwal
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)

2006-08-16 Thread Harpreet Dhaliwal

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)

2006-08-15 Thread Harpreet Dhaliwal
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)

2006-08-15 Thread Michael Fuhr
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