# HG changeset patch # User nrich@ii.net # Date 1292886180 0 # Node ID 356dcb1d455c566aa449778483a6d3ac7755f1eb # Parent 93335fa1f1d0e81ebe3fcde9c630d5fd20dc4961 Use SQLite built in mechanism for tracking transactions 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); diff -r 93335fa1f1d0 -r 356dcb1d455c dbd/sqlite3/dbd_sqlite3.h --- a/dbd/sqlite3/dbd_sqlite3.h Mon Dec 20 09:03:33 2010 +0000 +++ b/dbd/sqlite3/dbd_sqlite3.h Mon Dec 20 23:03:00 2010 +0000 @@ -10,7 +10,7 @@ typedef struct _connection { sqlite3 *sqlite; int autocommit; - int txn_in_progress; +// int txn_in_progress; } connection_t; /*