Re: [HACKERS] plpython trigger code is wrong (Re: Potential bug -- script that drops postgres server)

Поиск
Список
Период
Сортировка
От Bradley McLean
Тема Re: [HACKERS] plpython trigger code is wrong (Re: Potential bug -- script that drops postgres server)
Дата
Msg-id 20030215024539.GA1541@nia.bradm.net
обсуждение исходный текст
Ответ на plpython trigger code is wrong (Re: Potential bug -- script that drops postgres server)  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general
* Tom Lane (tgl@sss.pgh.pa.us) [030214 19:35]:
> Lance Thomas <LThomas@DevIS.com> writes:
> > Below is something that may be of interest -- a short, 7-statement script
> > that seems to drop my postgres server.
>
> It appears that the plpython trigger implementation assumes that any
> given procedure will be used as a trigger for only one relation.  The
> reason it crashes is it's trying to use the rowtype info of the relation
> it was first compiled for with the other relation.
>
> Probably the easiest fix is to include the relation OID as part of the
> Python name of a trigger procedure, so that a separate copy is compiled
> for each relation the procedure is used with.

Interesting idea.  I had been taking the approach of applying the cache
to just the python compilation, and not the rowtype info.  This has a
substantial performance penalty, which I'd been addressing by eliminating
some unneeded parameter processing that doesn't apply in the trigger
case, and considering a separate cache for each rowtype.

> Any plpython users want to step forward and fix this?  I have other
> things on my plate ...

I'm looking at the bug right now.  Patch in a day or so.

-Brad


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

Предыдущее
От: Alan Gutierrez
Дата:
Сообщение: Perform Action on Transaction Begin
Следующее
От: "Shridhar Daithankar"
Дата:
Сообщение: Re: Hi,