[tracker/tracker-0.6] Don't insert empty strings for NULL values, it causes unique value disparity
- From: Martyn James Russell <mr src gnome org>
- To: svn-commits-list gnome org
- Subject: [tracker/tracker-0.6] Don't insert empty strings for NULL values, it causes unique value disparity
- Date: Mon, 18 May 2009 06:03:09 -0400 (EDT)
commit c64601d8119db1acc52457d4481fc5cdd8fa9252
Author: Martyn Russell <martyn imendio com>
Date: Mon May 18 11:02:50 2009 +0100
Don't insert empty strings for NULL values, it causes unique value disparity
---
src/libtracker-data/tracker-data-update.c | 22 +++++++++++++++++++---
1 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/src/libtracker-data/tracker-data-update.c b/src/libtracker-data/tracker-data-update.c
index 47da58d..c25fa04 100644
--- a/src/libtracker-data/tracker-data-update.c
+++ b/src/libtracker-data/tracker-data-update.c
@@ -958,12 +958,20 @@ tracker_data_update_metadata_context_close (TrackerDataUpdateMetadataContext *co
g_hash_table_iter_init (&iter, context->data);
while (g_hash_table_iter_next (&iter, &key, &value)) {
+ /* We don't insert empty strings for NULLS, we
+ * simply don't insert the data and accept
+ * the database default.
+ */
+ if (!value) {
+ continue;
+ }
+
if (first) {
g_string_append_printf (keys, "%s", (gchar*) key);
- g_string_append_printf (values, "'%s'", value ? (gchar*) value : "");
+ g_string_append_printf (values, "'%s'", (gchar*) value);
} else {
g_string_append_printf (keys, ",%s", (gchar*) key);
- g_string_append_printf (values, ",'%s'", value ? (gchar*) value : "");
+ g_string_append_printf (values, ",'%s'", (gchar*) value);
}
first = FALSE;
@@ -989,6 +997,14 @@ tracker_data_update_metadata_context_close (TrackerDataUpdateMetadataContext *co
g_hash_table_iter_init (&iter, context->data);
while (g_hash_table_iter_next (&iter, &key, &value)) {
+ /* We don't update empty strings for NULLS, we
+ * simply don't insert the data and accept
+ * the database default.
+ */
+ if (!value) {
+ continue;
+ }
+
if (!first) {
g_string_append (update_query, ", ");
}
@@ -996,7 +1012,7 @@ tracker_data_update_metadata_context_close (TrackerDataUpdateMetadataContext *co
g_string_append_printf (update_query,
"%s = '%s'",
(gchar*) key,
- value ? (gchar*) value : "");
+ (gchar*) value);
first = FALSE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]