Max Jacob <Max.Jacob@ircam.fr> writes:
> I'm trying to call plpgsql functions from c functions directly through
> the Oid, but i have a problem: it seems that the plpgsql interpreter
> calls SPI_connect and fails even if the caller has already
> spi-connected.
This is a safety check. If you are connected to SPI, you need to call
SPI_push() and SPI_pop() around any operation that might involve
recursive use of SPI. That helps delimit "your" calls versus "their"
calls versus "no man's land".
It does seem that this is quite undocumented though. Jan?
regards, tom lane