Re: [HACKERS] SQL Triggers - Mailing list pgsql-hackers

From darcy@druid.net (D'Arcy J.M. Cain)
Subject Re: [HACKERS] SQL Triggers
Date
Msg-id m0zMbFG-00006FC@druid.net
Whole thread Raw
In response to Re: [HACKERS] SQL Triggers  (jwieck@debis.com (Jan Wieck))
Responses Re: [HACKERS] SQL Triggers
List pgsql-hackers
Thus spake Jan Wieck
> > darcy=> CREATE FUNCTION function_dead(int)
> > darcy->     RETURNS int
> > darcy->     AS 'UPDATE bid SET live = \'f\' WHERE item_id = $1;
> > darcy'>         SELECT 1 AS ignore_this'
> > darcy->     LANGUAGE 'sql';
> > CREATE
> > darcy=> CREATE TRIGGER trigger_dead BEFORE INSERT OR UPDATE
> > darcy->     ON bid
> > darcy->     FOR EACH ROW
> > darcy->     EXECUTE PROCEDURE function_dead (item_id);
> > ERROR:  CreateTrigger: function function_dead () does not exist
> > darcy=> SELECT function_dead(1);
> > function_dead
> > -------------
> >             1
> > (1 row)
>
>     The  arguments  aren't right and the return type too. Trigger
>     procedures take no arguments in their definition  and  return
>     OPAQUE type. They really return a tuple of the table they are
>     actually fired for.

Not sure I follow.  The argument is an int (or int4 as it defaults to)
and I tried various combos of int and int4 in the procedure definition

As for the opaque type return, I get an error message when I try to
create an SQL function returning opaque.  The "SELECT 1 AS ignore_this"
is taken straight from the examples.

>     Take a look at PL/pgSQL and it's docs which is already in the
>     CVS and will be shipped with 6.4.

I have the current sources (I sup daily) but I couldn't find any examples
of fcreate trigger.

--
D'Arcy J.M. Cain <darcy@{druid|vex}.net>   |  Democracy is three wolves
http://www.druid.net/darcy/                |  and a sheep voting on
+1 416 424 2871     (DoD#0082)    (eNTP)   |  what's for dinner.

pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: [DOCS] Installation instructions
Next
From: darcy@druid.net (D'Arcy J.M. Cain)
Date:
Subject: Re: unfortunately...