SPI_push should be called before executing another
procedure that might itself wish to use SPI.
SPI_push, SPI is no longer in a
"connected" state, and SPI function calls will be rejected unless
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.
SPI_execute and related functions
automatically do the equivalent of
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