Re: Changes to functions and triggers

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Changes to functions and triggers
Дата
Msg-id 6991.961166659@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Changes to functions and triggers  (darcy@druid.net (D'Arcy J.M. Cain))
Ответы Re: Changes to functions and triggers  (darcy@druid.net (D'Arcy J.M. Cain))
Список pgsql-hackers
darcy@druid.net (D'Arcy J.M. Cain) writes:
> Something changed in 7.02 from 6.3.  I used to do this:
> CREATE FUNCTION make_date()  
>     RETURNS opaque
>     AS '/usr/pgsql/modules/make_date.so' 
>     LANGUAGE 'c';
> CREATE TRIGGER make_edate
>     BEFORE INSERT OR UPDATE ON bgroup
>     FOR EACH ROW
>     EXECUTE PROCEDURE make_date(edate, aniv, emon, eyear);   

> This no longer works.

Details?

> I looked and the docs and it seems that this should work instead.

> CREATE FUNCTION make_date(date, int, int, int)  
>     RETURNS opaque
>     AS '/usr/pgsql/modules/make_date.so' 
>     LANGUAGE 'c';
> CREATE TRIGGER make_edate
>     BEFORE INSERT OR UPDATE ON bgroup
>     FOR EACH ROW
>     EXECUTE PROCEDURE make_date('edate', 'aniv', 'emon', 'eyear');   

No.  Trigger procedures never take explicit arguments --- whatever
you may have stated in the CREATE TRIGGER command gets passed in
in the trigger data structure.  (A pretty bizarre and ugly choice
if you ask me, but not worth breaking existing code to change...)

There's surely been a lot of changes in 7.0 that could have broken
user-written triggers, but you'll need to look to your C code to
find the problem.  What you've shown us looks fine.
        regards, tom lane


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Thomas Lockhart
Дата:
Сообщение: Re: Re: Big 7.1 open items
Следующее
От: JanWieck@t-online.de (Jan Wieck)
Дата:
Сообщение: Re: Big 7.1 open items