[tracker] libtracker-db: Make sure SQLite statement is reset when using cursors



commit 432dff7cf5b627aca52eb6ea5d1b93856b12b73e
Author: Jürg Billeter <j bitron ch>
Date:   Wed Oct 14 16:26:14 2009 +0200

    libtracker-db: Make sure SQLite statement is reset when using cursors
    
    Statement reset is only implicit if all results are read. A missing
    reset can lock the database, so we need to make sure to always reset
    unused statements.

 src/libtracker-db/tracker-db-interface-sqlite.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
---
diff --git a/src/libtracker-db/tracker-db-interface-sqlite.c b/src/libtracker-db/tracker-db-interface-sqlite.c
index c879cff..e3645c3 100644
--- a/src/libtracker-db/tracker-db-interface-sqlite.c
+++ b/src/libtracker-db/tracker-db-interface-sqlite.c
@@ -924,6 +924,7 @@ tracker_db_cursor_sqlite_finalize (GObject *object)
 		TrackerDBStatementSqlitePrivate *stmt_priv;
 		stmt_priv = TRACKER_DB_STATEMENT_SQLITE_GET_PRIVATE (priv->ref_stmt);
 		stmt_priv->stmt_is_sunk = FALSE;
+		tracker_db_statement_sqlite_reset (priv->ref_stmt);
 		g_object_unref (priv->ref_stmt);
 	} else {
 		sqlite3_finalize (priv->stmt);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]