Use SQLite built in mechanism for tracking transactions

Mon, 20 Dec 2010 23:03:00 +0000

author
nrich@ii.net
date
Mon, 20 Dec 2010 23:03:00 +0000
changeset 43
356dcb1d455c
parent 42
93335fa1f1d0
child 44
aab3ed7d93fe

Use SQLite built in mechanism for tracking transactions

dbd/sqlite3/connection.c file | annotate | diff | comparison | revisions
dbd/sqlite3/dbd_sqlite3.h file | annotate | diff | comparison | revisions
--- 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);
--- 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;
 
 /*

mercurial