PostgreSQL 7.2.1 Documentation
Prev |  | Next

# SPI_finish

## Name

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_finish` must 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.

Prev | Home | Next
SPI_connect | Up | SPI_exec