[tracker] data-manager: Account for cardinality=0 on DB migration
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker] data-manager: Account for cardinality=0 on DB migration
- Date: Tue, 24 Feb 2015 11:54:41 +0000 (UTC)
commit eac52e3db3c472e35af41f664ae686c0d26739d0
Author: Carlos Garnacho <carlosg gnome org>
Date: Fri Feb 13 13:54:13 2015 +0100
data-manager: Account for cardinality=0 on DB migration
If a property changes from maxCardinality 1 to many, the database
format is updated to cope with that, but at the time of migrating
data, it doesn't account for resources having no elements. In order
to avoid constraint errors, those must be skipped.
https://bugzilla.gnome.org/show_bug.cgi?id=743727
src/libtracker-data/tracker-data-manager.c | 11 ++++++-----
1 files changed, 6 insertions(+), 5 deletions(-)
---
diff --git a/src/libtracker-data/tracker-data-manager.c b/src/libtracker-data/tracker-data-manager.c
index 74c8fc6..384a98a 100644
--- a/src/libtracker-data/tracker-data-manager.c
+++ b/src/libtracker-data/tracker-data-manager.c
@@ -3206,14 +3206,15 @@ create_decomposed_metadata_tables (TrackerDBInterface *iface,
/* Function does what it must do, so reusable atm */
range_change_for (property, n_in_col_sql, n_sel_col_sql, field_name);
-
- /* Columns happen to be the same for decomposed multi-value and single value atm
*/
+
+ /* Columns happen to be the same for decomposed multi-value and single value
atm */
query = g_strdup_printf ("INSERT INTO \"%s_%s\"(%s) "
- "SELECT %s FROM \"%s_TEMP\"",
+ "SELECT %s FROM \"%s_TEMP\" "
+ "WHERE ID IS NOT NULL AND \"%s\" IS NOT NULL",
service_name, field_name,
- n_in_col_sql->str,
n_sel_col_sql->str,
- service_name);
+ n_in_col_sql->str, n_sel_col_sql->str,
+ service_name, field_name);
g_string_free (n_in_col_sql, TRUE);
g_string_free (n_sel_col_sql, TRUE);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]