Search Postgresql Archives

Re: Implicit transaction not rolling back after error

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



	
On Dec 20, 2012, at 3:27 PM, Adrian Klaver <adrian.klaver@xxxxxxxxx> wrote:

> When on (the default), each SQL command is automatically committed upon successful completion. To postpone commit in this mode, you must enter a BEGIN or START TRANSACTION SQL command. When off or unset, SQL commands are not committed until you explicitly issue COMMIT or END. The autocommit-off mode works by issuing an implicit BEGIN for you, just before any 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 keep in 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 you prefer autocommit-off, you might wish to set it in the system-wide psqlrc file or your ~/.psqlrc file.

Actually, you may be onto something.

    test=> COMMIT;
    WARNING:  there is no transaction in progress
    COMMIT
    onelogin_production=> SHOW AUTOCOMMIT;
     autocommit 
    ------------
     on
    (1 row)

    test=> COMMIT;
    COMMIT

If I try to do a bare "COMMIT", I get a warning that there's no transaction in progress. But if I do a simple SHOW, and COMMIT afterward, I get no such warning (indicating that I'm still inside of an uncommitted transaction). However, obviously, the client is telling me explicitly in the provided log that AUTOCOMMIT is on.

-- 
Stephen Touset
Senior Software Engineer
stephen.touset@xxxxxxxxxxxx





-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux