r17993 - gnucash/trunk/src/backend/dbi - Implement BEGIN/COMMIT/ROLLBACK for transaction support. Provides a *huge*

Phil Longstaff plongstaff at cvs.gnucash.org
Fri Mar 13 12:33:19 EDT 2009


Author: plongstaff
Date: 2009-03-13 12:33:19 -0400 (Fri, 13 Mar 2009)
New Revision: 17993
Trac: http://svn.gnucash.org/trac/changeset/17993

Modified:
   gnucash/trunk/src/backend/dbi/gnc-backend-dbi.c
Log:
Implement BEGIN/COMMIT/ROLLBACK for transaction support.  Provides a *huge*
performance improvement when saving to an sqlite3 file.



Modified: gnucash/trunk/src/backend/dbi/gnc-backend-dbi.c
===================================================================
--- gnucash/trunk/src/backend/dbi/gnc-backend-dbi.c	2009-03-13 15:31:35 UTC (rev 17992)
+++ gnucash/trunk/src/backend/dbi/gnc-backend-dbi.c	2009-03-13 16:33:19 UTC (rev 17993)
@@ -1071,24 +1071,36 @@
 static gboolean
 conn_begin_transaction( /*@ unused @*/ GncSqlConnection* conn )
 {
-	//GncDbiSqlConnection* dbi_conn = (GncDbiSqlConnection*)conn;
+	GncDbiSqlConnection* dbi_conn = (GncDbiSqlConnection*)conn;
+	dbi_result result;
 
+	result = dbi_conn_queryf( dbi_conn->conn, "BEGIN" );
+	(void)dbi_result_free( result );
+
 	return TRUE;
 }
 
 static gboolean
 conn_rollback_transaction( /*@ unused @*/ GncSqlConnection* conn )
 {
-	//GncDbiSqlConnection* dbi_conn = (GncDbiSqlConnection*)conn;
+	GncDbiSqlConnection* dbi_conn = (GncDbiSqlConnection*)conn;
+	dbi_result result;
 
+	result = dbi_conn_queryf( dbi_conn->conn, "ROLLBACK" );
+	(void)dbi_result_free( result );
+
 	return TRUE;
 }
 
 static gboolean
 conn_commit_transaction( /*@ unused @*/ GncSqlConnection* conn )
 {
-	//GncDbiSqlConnection* dbi_conn = (GncDbiSqlConnection*)conn;
+	GncDbiSqlConnection* dbi_conn = (GncDbiSqlConnection*)conn;
+	dbi_result result;
 
+	result = dbi_conn_queryf( dbi_conn->conn, "COMMIT" );
+	(void)dbi_result_free( result );
+
 	return TRUE;
 }
 



More information about the gnucash-changes mailing list