PostgreSQL
Prev |  | Next

# SPI_finish

## Name

SPI_finish — Disconnects your procedure from the SPI manager.

    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 Postgres backend. You should call this function after completing operations through the SPI manager.

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! Note that you can safely skip the call to `SPI_finish` if you abort the transaction (via elog(ERROR)).

## 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