Provided by: postgresql-doc-9.3_9.3.24-0ubuntu0.14.04_all bug

NAME

       SPI_push - push SPI stack to allow recursive SPI usage

SYNOPSIS

       void SPI_push(void)

DESCRIPTION

       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.