Skip to content

Releases: lzlabs/pg_statement_rollback

Version 1.4

04 Jun 08:15
Compare
Choose a tag to compare

Sun Jun 04 2023

This maintenance release fixes portability on PostgreSQL version 16.

  • Add support to PostgreSQL 16. [Author: Gilles Darold]

Version 1.3

22 Oct 09:35
Compare
Choose a tag to compare

Fri Oct 22 2021

This maintenance release fixes portability issues on latest
PostgreSQL version.

  • Add support to PostgreSQL 14. [Author: Gilles Darold]

Version 1.2

04 Jun 17:17
Compare
Choose a tag to compare

Version 1.2 - Fri Jun 04 2021

This maintenance release fixes portability issues on different
PostgreSQL version as well as taking care of parallelism.

  • Check for minimum pg version in the C code instead of Makefile [Author: Gilles Darold]
  • Prevent automatic savepoint to be created/released in a parallel worker. [Author: Dave Sharpe]
  • Fix port to PostgreSQL versions before v11.0 and v14. [Author: Gilles Darold]
  • Fix links in documentation menu. [Author: Gilles Darold]

Version 1.1

12 Nov 08:21
Compare
Choose a tag to compare

Zurich, Switzerland - Nov 12th, 2020

This maintenance release fix the unhandled case of a writing function throwing error that was causing a failure of the extension.

  • Add a note to documentation that pg_statement_rollback.savepoint_name can only be set by a superuser.
  • Fix example on pg_statement_rollback.savepoint_name use in the documentation. Thanks to Guillaume Lelarge for the report.

Version 1.0

02 Nov 14:53
Compare
Choose a tag to compare

Zurich, Switzerland - Nov 2nd, 2020

Server side rollback at statement level for PostgreSQL

pg_statement_rollback is a PostgreSQL extension to add server side
transaction with rollback at statement level like in Oracle or DB2.

The initial release v1.0 of pg_statement_rollback was released today.

Statement-level rollback

If at any time during execution a SQL statement causes an error, all
effects of the statement are rolled back. The effect of the rollback
is as if that statement had never been run. This operation is called
statement-level rollback and has the following characteristics:

  • A SQL statement that does not succeed causes the loss only of work
    it would have performed itself. The unsuccessful statement does not
    cause the loss of any work that preceded it in the current transaction.
  • The effect of the rollback is as if the statement had never been run.

In PostgreSQL the transaction cannot continue when you encounter an
error and the entire work done in the transaction is rolled back.
Oracle or DB2 have implicit savepoint before each statement execution
which allow a rollback to the state just before the statement failure.

Current implementation of rollback at statement level for PostgreSQL
is done at client side. psql has \set ON_ERROR_ROLLBACK on, JDBC has
autorollback on SQL exception from executing a query, psqlODBC too with
the "statement level rollback" mode. The problem of these implementations
is that they add extra communication with the server by sending a SAVEPOINT
autosave and RELEASE SAVEPOINT autosave so it can seriously limit the
throughput of the application.

See documentation for a complete description of the feature.

Links & Credits

pg_statement_rollback is an open project from LzLabs (https://www.lzlabs.com/).
Any contribution to build a better tool is welcome. You just have to send
your ideas, features requests or patches using the GitHub tools.

Links :