## Name

SPI_finish — disconnect a procedure from the SPI manager

## Synopsis

    int SPI_finish(void)

## 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 do not need to worry about making this happen, however, if you abort the transaction via `elog(ERROR)`. In that case SPI will clean itself up automatically.

If `SPI_finish` is called without having a valid connection, it will return `SPI_ERROR_UNCONNECTED`. There is no fundamental problem with this; it means that the SPI manager has nothing to do.

## Return Value

`SPI_OK_FINISH`

  if properly disconnected

`SPI_ERROR_UNCONNECTED`

  if called from an unconnected procedure