diff -r 356dcb1d455c -r aab3ed7d93fe dbd/postgresql/connection.c --- a/dbd/postgresql/connection.c Mon Dec 20 23:03:00 2010 +0000 +++ b/dbd/postgresql/connection.c Fri Dec 24 00:34:04 2010 +0000 @@ -109,10 +109,12 @@ int err = 0; if (conn->postgresql) { - if (on) - err = rollback(conn); - else - err = begin(conn); + if (on != conn->autocommit) { + if (on) + err = rollback(conn); + else + err = begin(conn); + } conn->autocommit = on; }