---
name: "SPI_commit"
section: "3"
platform: "linux"
package: "postgresql"
version: "18.6-4"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/SPI_commit"
---

# SPI\_commit(3)

commit the current transaction

## NAME

SPI\_commit, SPI\_commit\_and\_chain - commit the current transaction

## SYNOPSIS

```
void SPI_commit(void)
```

```
void SPI_commit_and_chain(void)
```

## DESCRIPTION

**SPI\_commit** commits the current transaction. It is approximately equivalent to running the SQL command **COMMIT**. After the transaction is committed, a new transaction is automatically started using default transaction characteristics, so that the caller can continue using SPI facilities. If there is a failure during commit, the current transaction is instead rolled back and a new transaction is started, after which the error is thrown in the usual way.

**SPI\_commit\_and\_chain** is the same, but the new transaction is started with the same transaction characteristics as the just finished one, like with the SQL command **COMMIT AND CHAIN**.

These functions can only be executed if the SPI connection has been set as nonatomic in the call to **SPI\_connect\_ext**.
