Recursion and SPI
От | Ian Lance Taylor |
---|---|
Тема | Recursion and SPI |
Дата | |
Msg-id | 20010105193916.614.qmail@daffy.airs.com обсуждение исходный текст |
Ответы |
Re: Recursion and SPI
|
Список | 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 по дате отправления: