blob: 13091a3af56689248f9ec44be2ee70a6e3363cb6 [file] [log] [blame]
---
title: RELEASE SAVEPOINT
---
Destroys a previously defined savepoint.
## Synopsis<a id="topic1__section2"></a>
``` pre
RELEASE [SAVEPOINT] savepoint_name
```
## Description<a id="topic1__section3"></a>
`RELEASE SAVEPOINT` destroys a savepoint previously defined in the current transaction.
Destroying a savepoint makes it unavailable as a rollback point, but it has no other user visible behavior. It does not undo the effects of commands executed after the savepoint was established. (To do that, see /3/4.) Destroying a savepoint when it is no longer needed may allow the system to reclaim some resources earlier than transaction end.
`RELEASE SAVEPOINT` also destroys all savepoints that were established *after* the named savepoint was established.
## Parameters<a id="topic1__section4"></a>
*savepoint\_name*
The name of the savepoint to destroy.
## Examples<a id="topic1__section5"></a>
To establish and later destroy a savepoint:
``` pre
BEGIN;
INSERT INTO table1 VALUES (3);
SAVEPOINT my_savepoint;
INSERT INTO table1 VALUES (4);
RELEASE SAVEPOINT my_savepoint;
COMMIT;
```
The above transaction will insert both 3 and 4.
## Compatibility<a id="topic1__section6"></a>
This command conforms to the SQL standard. The standard specifies that the key word `SAVEPOINT` is mandatory, but HAWQ allows it to be omitted.
## See Also<a id="topic1__section7"></a>
/3/4, /3/4, /3/4, /3/4