Re: Implicit transaction not rolling back after error - Mailing list pgsql-general

From Stephen Touset
Subject Re: Implicit transaction not rolling back after error
Date
Msg-id 7B4A64A0-6489-47AD-86EE-0BCC43D6AA23@onelogin.com
Whole thread Raw
In response to Re: Implicit transaction not rolling back after error  (Adrian Klaver <adrian.klaver@gmail.com>)
Responses Re: Implicit transaction not rolling back after error  (Rob Sargent <robjsargent@gmail.com>)
List pgsql-general
On Dec 20, 2012, at 3:27 PM, Adrian Klaver <adrian.klaver@gmail.com> wrote:

> When on (the default), each SQL command is automatically committed upon successful completion. To postpone commit in
thismode, you must enter a BEGIN or START TRANSACTION SQL command. When off or unset, SQL commands are not committed
untilyou explicitly issue COMMIT or END. The autocommit-off mode works by issuing an implicit BEGIN for you, just
beforeany command that is not already in a transaction block and is not itself a BEGIN or other transaction-control
command,nor a command that cannot be executed inside a transaction block (such as VACUUM). 
>
> Note: In autocommit-off mode, you must explicitly abandon any failed transaction by entering ABORT or ROLLBACK. Also
keepin mind that if you exit the session without committing, your work will be lost. 
> Note: The autocommit-on mode is PostgreSQL's traditional behavior, but autocommit-off is closer to the SQL spec. If
youprefer autocommit-off, you might wish to set it in the system-wide psqlrc file or your ~/.psqlrc file. 

In this case, not only is AUTOCOMMIT set to "on", but I wasn't even able to turn it off for testing purposes.

    test=# SET AUTOCOMMIT TO off;
    ERROR:  SET AUTOCOMMIT TO OFF is no longer supported

So yes, AUTOCOMMIT is definitely on.

--
Stephen Touset
Senior Software Engineer
stephen.touset@onelogin.com


pgsql-general by date:

Previous
From: Adrian Klaver
Date:
Subject: Re: Implicit transaction not rolling back after error
Next
From: Stephen Touset
Date:
Subject: Re: Implicit transaction not rolling back after error