>
> Is this an error on my part or is there a bug in the CREATE TRIGGER
> code?
>
> 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)
>
> darcy=> DROP FUNCTION function_dead(int);
> DROP
> darcy=>
>
> Note that the CREATE FUNCTION works as it can be used as in the SELECT
> and it can be dropped proving (?) that it existed. I think I have
> all the argument types right. I tried it with int4 as well.
>
> --
> 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.
>
>
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.
Take a look at PL/pgSQL and it's docs which is already in the
CVS and will be shipped with 6.4.
Jan
--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#======================================== jwieck@debis.com (Jan Wieck) #