Provided by: postgresql-doc-9.1_9.1.3-2_all bug


       SPI_push - push SPI stack to allow recursive SPI usage


       void SPI_push(void)


       SPI_push should be called before executing another procedure that might itself wish to use
       SPI. After SPI_push, SPI is no longer in a “connected” state, and SPI function calls will
       be rejected unless a fresh SPI_connect is done. This ensures a clean separation between
       your procedure's SPI state and that of another procedure you call. After the other
       procedure returns, call SPI_pop to restore access to your own SPI state.

       Note that SPI_execute and related functions automatically do the equivalent of SPI_push
       before passing control back to the SQL execution engine, so it is not necessary for you to
       worry about this when using those functions. Only when you are directly calling arbitrary
       code that might contain SPI_connect calls do you need to issue SPI_push and SPI_pop.