# SHOW SAVEPOINT STATUS

The `SHOW SAVEPOINT STATUS` statement lists the active savepoints in the current transaction.

## Required privileges

No privileges are required to create or show a savepoint. However, privileges are required for each statement within a transaction.

## Synopsis

## Response

The following fields are returned for each savepoint.

Field | Description
--- | ---
`savepoint_name` | The name of the savepoint.
`is_initial_savepoint` | Whether the savepoint is the outermost savepoint in the transaction.

## Example

First, open a transaction using `BEGIN`, and create a nested transaction using a savepoint:

    > BEGIN;
    SAVEPOINT foo;

Next, use the `SHOW SAVEPOINT STATUS` statement to list the active savepoints in the current nested transaction.

    > SHOW SAVEPOINT STATUS;

      savepoint_name | is_initial_savepoint
    -----------------+-----------------------
      foo            |        true
    (1 row)

Currently, there is only one savepoint.

We can commit this nested transaction by issuing the `RELEASE SAVEPOINT` statement. Then, we clear the connection for the next transaction by issuing a `COMMIT` statement.

    > RELEASE SAVEPOINT foo;
    COMMIT;

If we did not want to commit this nested transaction, but restart it instead, we would have issued a `ROLLBACK TO SAVEPOINT`.

## See also

- `SAVEPOINT`
- `RELEASE SAVEPOINT`
- `ROLLBACK`
- `BEGIN`
- `COMMIT`
- Transactions