diff -r 93335fa1f1d0 -r 356dcb1d455c dbd/sqlite3/connection.c --- a/dbd/sqlite3/connection.c Mon Dec 20 09:03:33 2010 +0000 +++ b/dbd/sqlite3/connection.c Mon Dec 20 23:03:00 2010 +0000 @@ -9,7 +9,6 @@ } static int commit(connection_t *conn) { - conn->txn_in_progress = 0; return run(conn, "COMMIT TRANSACTION"); } @@ -17,18 +16,16 @@ static int begin(connection_t *conn) { int err = 0; - if (conn->txn_in_progress) { - err = 0; + if (sqlite3_get_autocommit(conn->sqlite)) { + err = run(conn, "BEGIN TRANSACTION"); } else { - conn->txn_in_progress = 1; - err = run(conn, "BEGIN TRANSACTION"); + err = 0; } return err; } static int rollback(connection_t *conn) { - conn->txn_in_progress = 0; return run(conn, "ROLLBACK TRANSACTION"); } @@ -67,7 +64,6 @@ } conn->autocommit = 0; - conn->txn_in_progress = 0; luaL_getmetatable(L, DBD_SQLITE_CONNECTION); lua_setmetatable(L, -2);