Re: C Trigger issue
| От | Stephan Szabo |
|---|---|
| Тема | Re: C Trigger issue |
| Дата | |
| Msg-id | Pine.BSF.4.21.0102131104230.90043-100000@megazone23.bigpanda.com обсуждение исходный текст |
| Ответ на | Re: C Trigger issue ("Rod Taylor" <rod.taylor@inquent.com>) |
| Список | 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 по дате отправления: