Re: Trigger with WHEN clause (WIP)

Поиск
Список
Период
Сортировка
От Itagaki Takahiro
Тема Re: Trigger with WHEN clause (WIP)
Дата
Msg-id 20091016095420.A193.52131E4D@oss.ntt.co.jp
обсуждение исходный текст
Ответ на Re: Trigger with WHEN clause (WIP)  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Trigger with WHEN clause (WIP)
Список pgsql-hackers
Tom Lane <tgl@sss.pgh.pa.us> wrote:

> Itagaki Takahiro <itagaki.takahiro@oss.ntt.co.jp> writes:
> > I think there is a benefit to provide WHEN cluase at least
> > for compatibility with other DBMSs, even through we can move
> > the expressions into the body of trigger functions.
> 
> This seems to me to be a lot of code to accomplish nothing useful.
> It will always be the case that any nontrivial logic has to be done
> inside the trigger.  And the compatibility argument is entirely
> pointless given the lack of compatibility in the trigger function
> itself.

I see that WHEN cluase is not always needed,
but I think there are several benefits to have it:
 * WHEN cluase is in SQL standard.
 * We could recheck trigger conditions when NEW tuple is modified.   (not yet implemented in the patch, though)
http://archives.postgresql.org/pgsql-hackers/2009-09/msg00286.php
 * As for compatibility, it is easy for typical users to move trigger   bodies into a function, but they don't like to
mergethe condition   and the bodies into a function in my experience.
 
 * As for performance, I don't have any evidence. But there was a   discussion about benefits of writing partitioning
triggerfunction   with C instead of PL/pgSQL. He said pgplsql is slow.
http://archives.postgresql.org/pgsql-hackers/2008-12/msg01221.php  Also, to separate trigger bodies and conditions are
usefulwhen we   write triggers in C because we don't have to recomplie the code.
 

Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center




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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: inefficient use of relation extension?
Следующее
От: Robert Haas
Дата:
Сообщение: Re: CommitFest 2009-09, two weeks on