Recursion and SPI

Поиск
Список
Период
Сортировка
От Ian Lance Taylor
Тема Recursion and SPI
Дата
Msg-id 20010105193916.614.qmail@daffy.airs.com
обсуждение исходный текст
Ответы Re: Recursion and SPI  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Does the SPI interface support recursion?  That is, can a function
use SPI to make a query which involves calling another function which
uses SPI?

The documentation suggests not, saying that if a function which uses
SPI calls another function which uses SPI, it won't work, and calling
that ``bad practice.''

However, in spi.c I note that there is a stack, and a variable
_SPI_curid, and the undocumented functions SPI_push and SPI_pop.  If
that works to support recursion, then why does the documentation
recommend against it?


Are there any restrictions on when SPI_connect may be called?  The
executor can presumably call a function at any time during the
execution of a plan if the function is used in a WHERE clause.  If
that function turns around and calls the executor via SPI, are there
any possibilities for deadlock?

Ian


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Well, we seem to be proof against cache-inval problems now
Следующее
От: "Mikheev, Vadim"
Дата:
Сообщение: RE: Recursion and SPI