---
title: "SPI_finish"
id: spi-spi-finish
pg_version: "20devel"
---
# SPI_finish — disconnect a C function 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 C function'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.
## Return Value
**`SPI_OK_FINISH`**
if properly disconnected **`SPI_ERROR_UNCONNECTED`**
if called from an unconnected C function