Re: pl/pythonu

Поиск
Список
Период
Сортировка
От scott.marlowe
Тема Re: pl/pythonu
Дата
Msg-id Pine.LNX.4.33.0402111119080.343-100000@css120.ihs.com
обсуждение исходный текст
Ответ на Re: pl/pythonu  ("C G" <csgcsg39@hotmail.com>)
Список pgsql-general
On Wed, 11 Feb 2004, C G wrote:

>
> > > Dear All,
> > >
> > > Could anyone explain why this function does will not work? The error
> >message
> > > is
> > > DETAIL: exceptions.RuntimeError: maximum recursion depth exceeded.
> > >
> > > CREATE FUNCTION testing() RETURNS trigger AS'
> > >
> > > plan=plpy.prepare(''INSERT INTO t1 values ($1)'',[''text''])
> > > plpy.execute(plan,[''blah''])
> > > return ''MODIFY''
> > >
> > > 'LANGUAGE plpythonu;
> >
> >Perhaps the plpy.execute is inserting into the same table as the trigger
> >is on?  If that's the case, then the trigger will be recursively called
> >over and over until the "maximum recursion depth" is "exceeded".
>
> Yes, that is what is happening. My question is now, if I have a trigger on
> table t1, how should I write my function to insert 'blah' into my table when
> it is triggered?

You're likely looking for the new/old row set thing.  I'm not sure how the
struct is put together in plpython.  It holds the old row before the
insert, and the new row, which your trigger will actually insert in its
place.


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

Предыдущее
От: Josh Berkus
Дата:
Сообщение: Re: sybase->postgresql
Следующее
От: "Ed L."
Дата:
Сообщение: Re: DB cache size strategies