SPI_finish -- Disconnects your procedure from the SPI manager.
Synopsis
SPI_finish(void)
Inputs
None
Outputs
int
SPI_OK_FINISH
if properly disconnected
SPI_ERROR_UNCONNECTED
if called from an un-connected procedure
Description
SPI_finish closes an existing connection to the
SPI manager.
You must call this function after completing the SPI operations needed
during your procedure's current invocation.
You may get the error return SPI_ERROR_UNCONNECTED if SPI_finish is
called without having a current valid connection.
There is no fundamental problem
with this; it means that nothing was done by the SPI manager.
Usage
SPI_finishmust be called as a final step by a connected procedure,
or you may get
unpredictable results! However, you do not need to worry about making
this happen if the transaction is aborted via elog(ERROR). In that case
SPI will clean itself up.
Algorithm
SPI_finish performs the following:
Disconnects your procedure from the SPI manager and frees all memory
allocations made by your procedure via palloc since
the SPI_connect.
These allocations can't be used any more! See Memory management.