[tracker/tracker-store-queue] tracker-store: Fix transaction handling for non-batch updates
- From: Jürg Billeter <juergbi src gnome org>
- To: svn-commits-list gnome org
- Subject: [tracker/tracker-store-queue] tracker-store: Fix transaction handling for non-batch updates
- Date: Tue, 26 May 2009 08:00:00 -0400 (EDT)
commit 72ca3a18a9377a5d69564ee05ae3a07dec2f14f0
Author: Jürg Billeter <j bitron ch>
Date: Tue May 26 13:59:09 2009 +0200
tracker-store: Fix transaction handling for non-batch updates
---
src/tracker-store/tracker-store.c | 36 ++++++++++++++++++++++++++++++++++++
1 files changed, 36 insertions(+), 0 deletions(-)
diff --git a/src/tracker-store/tracker-store.c b/src/tracker-store/tracker-store.c
index a215a03..eb3521b 100644
--- a/src/tracker-store/tracker-store.c
+++ b/src/tracker-store/tracker-store.c
@@ -361,6 +361,18 @@ void
tracker_store_sparql_update (const gchar *sparql,
GError **error)
{
+ TrackerStorePrivate *private;
+
+ private = g_static_private_get (&private_key);
+ g_return_if_fail (private != NULL);
+
+ if (private->batch_mode) {
+ /* commit pending batch items */
+ tracker_data_commit_transaction ();
+ private->batch_mode = FALSE;
+ private->batch_count = 0;
+ }
+
tracker_data_update_sparql (sparql, error);
}
@@ -434,6 +446,18 @@ tracker_store_insert_statement (const gchar *subject,
const gchar *predicate,
const gchar *object)
{
+ TrackerStorePrivate *private;
+
+ private = g_static_private_get (&private_key);
+ g_return_if_fail (private != NULL);
+
+ if (private->batch_mode) {
+ /* commit pending batch items */
+ tracker_data_commit_transaction ();
+ private->batch_mode = FALSE;
+ private->batch_count = 0;
+ }
+
tracker_data_insert_statement (subject, predicate, object);
}
@@ -442,6 +466,18 @@ tracker_store_delete_statement (const gchar *subject,
const gchar *predicate,
const gchar *object)
{
+ TrackerStorePrivate *private;
+
+ private = g_static_private_get (&private_key);
+ g_return_if_fail (private != NULL);
+
+ if (private->batch_mode) {
+ /* commit pending batch items */
+ tracker_data_commit_transaction ();
+ private->batch_mode = FALSE;
+ private->batch_count = 0;
+ }
+
tracker_data_delete_statement (subject, predicate, object);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]