Postgres-XC 1.1 Documentation
Prev | Up |  | Next

# COMMIT PREPARED

## Name

COMMIT PREPARED -- commit a transaction that was earlier prepared for two-phase commit

## Synopsis

    COMMIT PREPARED transaction_id

## Description

`COMMIT PREPARED` commits a transaction that is in prepared state.

## Parameters

`transaction_id`

  The transaction identifier of the transaction that is to be committed.

## Notes

> Note: The following description applies both to Postgres-XC and PostgreSQL if not described explicitly.

To commit a prepared transaction, you must be either the same user that executed the transaction originally, or a superuser. But you do not have to be in the same session that executed the transaction.

This command cannot be executed inside a transaction block. The prepared transaction is committed immediately.

All currently available prepared transactions are listed in the `pg_prepared_xacts` system view.

> Note: The following description applies only to Postgres-XC

If more than one Datanode and/or Coordinator are involved in the transaction, `COMMIT PREPARED` command will propagate to all these nodes.

> Note: The following description applies only to Postgres-XC

If `xc_maintenance_mode` GUC parameter is set to `ON`, `COMMIT PREPARED` will not propagate to other nodes. It just runs locally and report the result to `GTM`.

## Examples

Commit the transaction identified by the transaction identifier `foobar`:

    COMMIT PREPARED 'foobar';

## Compatibility

`COMMIT PREPARED` is a PostgreSQL extension. It is intended for use by external transaction management systems, some of which are covered by standards (such as X/Open XA), but the SQL side of those systems is not standardized.

## See Also

PREPARE TRANSACTION, ROLLBACK PREPARED, xc_maintenance_mode

Prev | Home | Next
COMMIT | Up | COPY