Re: C Trigger issue - Mailing list pgsql-hackers

From Stephan Szabo
Subject Re: C Trigger issue
Date
Msg-id Pine.BSF.4.21.0102131104230.90043-100000@megazone23.bigpanda.com
Whole thread Raw
In response to Re: C Trigger issue  ("Rod Taylor" <rod.taylor@inquent.com>)
List pgsql-hackers
IIRC, trigger functions don't take parameters, they're 
func() returns opaque.  The arguments given in create trigger
are passed in a different way.  That's why the error message 
is saying dbuser_account() is missing.

On Tue, 13 Feb 2001, Rod Taylor wrote:

> Sorry, Postgres 7.1 beta4
> --
> Rod Taylor
> 
> There are always four sides to every story: your side, their side, the
> truth, and what really happened.
> ----- Original Message -----
> From: "Rod Taylor" <rod.taylor@inquent.com>
> To: "Hackers List" <pgsql-hackers@postgresql.org>
> Sent: Tuesday, February 13, 2001 10:35 AM
> Subject: [HACKERS] C Trigger issue
> 
> 
> > Create function, attempt to create trigger fails, yet function
> > obviously exists.  I can't seem to typecast the trigger parameters.
> > \df even misses the function.
> >
> >
> >
> > temp=# CREATE FUNCTION dbuser_account(varchar(40), varchar(40),
> > varchar(40))
> >
> > temp-# RETURNS OPAQUE
> >
> > temp-# AS
> >
> '/usr/home/rbt/temp/postgresql-7.1beta4/contrib/user_account/user_acco
> > unt.so'
> >
> > temp-# language 'C';
> >
> > CREATE
> >
> > temp=#
> >
> > temp=# \df dbuser_account
> >
> > List of functions
> >
> > Result | Function | Arguments
> >
> > --------+----------+-----------
> >
> > (0 rows)
> >
> > temp=#
> >
> > temp=# select dbuser_account('test', 'test', 'test');
> >
> > ERROR: dbuser_account: not fired by trigger manager
> >
> > temp=#
> >
> > temp=#
> >
> > temp=# CREATE TRIGGER dbuser_account_trg
> >
> > temp-# AFTER INSERT
> >
> > temp-# OR DELETE
> >
> > temp-# OR UPDATE
> >
> > temp-# ON users
> >
> > temp-# FOR EACH row
> >
> > temp-# EXECUTE PROCEDURE dbuser_account('val1', 'val2', 'val3');
> >
> > ERROR: CreateTrigger: function dbuser_account() does not exist
> >
> > temp=#
> >
> > temp=# DROP FUNCTION dbuser_account(varchar(40), varchar(40),
> > varchar(40));
> >
> > DROP
> >
> > --
> > Rod Taylor
> >
> > There are always four sides to every story: your side, their side,
> the
> > truth, and what really happened.
> >
> 



pgsql-hackers by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: locale support
Next
From: Lamar Owen
Date:
Subject: Re: locale support